-- ex: set ff=dos
-- $Id$

-- map ICMP Echo Fingerprints

-- generated by command `hping[2|3] -1 ip` on Linux (based on TTL=64)
INSERT INTO map(maptype,map,src,val)VALUES('App','hping',   'ICMP.Echo.Fingerprint','echo,ttl=64,idz=0,df=0,bytes=0,payload=');
-- based on ttl=64
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'Linux',   'ICMP.Echo.Fingerprint','echo,ttl=64,idz=0,df=0,bytes=0,payload=');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'Linux',   'ICMP.Echo.Fingerprint','echo,ttl=64,idz=1,df=1,bytes=56,payload=........\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&''()*+,-./01234567');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'Linux',   'ICMP.Echo.Fingerprint','echo,ttl=64,idz=1,df=0,bytes=56,payload=........\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&''()*+,-./01234567');

INSERT INTO map(maptype,map,src,val)VALUES('OS', 'BSD', 'ICMP.Echo.Fingerprint','echo,ttl=64,idz=0,df=0,bytes=56,payload=........\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&''()*+,-./01234567');
-- idz=1,df=1 from FreeBSD7.3
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'FreeBSD', 'ICMP.Echo.Fingerprint','echo,ttl=64,idz=1,df=1,bytes=56,payload=........\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&''()*+,-./01234567');

-- some OSes with ancient BSD heritage use a TTL of 255 and a Muuss payload
-- "In December of 1983...  The folks at Berkeley eagerly took back my kernel modifications and the PING source code, and it's been a standard part of Berkeley UNIX ever since."
-- @ref: Muuss, Mike "The Story of the PING Program" [web page] <URL: http://ftp.arl.army.mil/~mike/ping.html> [Accessed Jan 16 2009]
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'NetBSD',  'ICMP.Echo.Fingerprint','echo,ttl=255,idz=0,df=0,bytes=56,payload=........\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&''()*+,-./01234567');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'Solaris',  'ICMP.Echo.Fingerprint','echo,ttl=255,idz=0,df=0,bytes=56,payload=........\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&''()*+,-./01234567');

-- Windows NT
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'WinNT4',  'ICMP.Echo.Fingerprint','echo,ttl=32,idz=0,df=0,bytes=32,payload=abcdefghijklmnopqrstuvwabcdefghi');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'WinNT5.1','ICMP.Echo.Fingerprint','echo,ttl=32,idz=0,df=0,bytes=32,payload=abcdefghijklmnopqrstuvwabcdefghi');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'WinNT5.1','ICMP.Echo.Fingerprint','echo,ttl=32,idz=0,df=0,bytes=32,payload=ABCDEFGHIJKLMNOPQRSTUVWABCDEFGHI');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'WinNT5',  'ICMP.Echo.Fingerprint','echo,ttl=32,idz=0,df=0,bytes=32,payload=abcdefghijklmnopqrstuvwabcdefghi');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'WinNT5.2','ICMP.Echo.Fingerprint','echo,ttl=128,idz=0,df=0,bytes=32,payload=abcdefghijklmnopqrstuvwabcdefghi');

-- Windows tracert program
INSERT INTO map(maptype,map,src,val)VALUES('App','tracert.exe','ICMP.Echo.Fingerprint','echo,ttl=1,idz=0,df=0,bytes=64,payload=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'Windows','ICMP.Echo.Fingerprint','echo,ttl=1,idz=0,df=0,bytes=64,payload=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'WinNT','ICMP.Echo.Fingerprint','echo,ttl=1,idz=0,df=0,bytes=64,payload=\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00');

-- Windows 2000+ send an image file containing the windows logo in it over ICMP to test connection speed
-- to the host controller in order to classify the connection as slow, fast, etc.
-- @ref "How a slow link is detected for processing user profiles and Group Policy" <URL: http://support.microsoft.com/default.aspx?scid=kb;en-us;227260> [Accessed Jan 19 2008]
-- @note that the exact size assumes ethernet, but that's a fairly safe bet
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'WinNT','ICMP.Echo.Fingerprint','echo,ttl=128,idz=0,df=0,bytes=1472,payload=\xff\xd8\xff\xfe\x00\x08WANG2\x02\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00`\x00`\x00\x00\xff\xdb\x00\x43\x00\x10\x0b\x0c\x0e\x0c\x0a\x10\x0e\x0d\x0e\x12\x11\x10\x13\x18(\x1a\x18\x16\x16\x18\x31#%\x1d(:3=<9387@H\x5cN@DWE78PmQW_bghg>Mqypdx\x5c\x65gc\xff\xdb\x00\x43\x01\x11\x12\x12\x18\x15\x18/\x1a\x1a/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc\xff\xc0\x00\x11\x08\x00&\x00\x9e\x03\x01!\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa\x07\"q\x14\x32\x81\x91\xa1\x08#B\xb1\xc1\x15R\xd1\xf0$3br\x82\x09\x0a\x16\x17\x18\x19\x1a%&''()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xc4\x00\x1f\x01\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\xff\xc4\x00\xb5\x11\x00\x02\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04\x00\x01\x02w\x00\x01\x02\x03\x11\x04\x05!1\x06\x12\x41Q\x07\x61q\x13\"2\x81\x08\x14\x42\x91\xa1\xb1\xc1\x09#3R\xf0\x15\x62r\xd1\x0a\x16$4\xe1%\xf1\x17\x18\x19\x1a&''()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xed\x35mJ\x1d#M\x96\xfa\xe1\x64h\xa2\xc6\xe1\x18\x05\xb9 q\x92=j\xae\x81\xe2+/\x10G3Y\x89P\xc2@t\x95@#=\x0f\x04\x8e\xc7\xbfj\x00\xd6\xaeu\xfcg\xa6.\xb6\x34\xa5\x8e\xe5\xe6\xf3\xc4\x1b\xd5\x06\xcd\xe4\xe3\xb9\xcf\x07\x8e\x9d\xbb\xd0\x06\x86\xa7\xad\xdbiw\xb6\x16\xb3\xa4\xac\xf7\xd2yq\x94\x00\x80r\xa3\x9c\x91\xfd\xe1\xebZT\x00Q@\x05\x14\x00Q@\x05\x14\x00Q@\x0d\x92\x44\x8a\x36\x92GTD\x05\x99\x98\xe0(\x1dI5\xcc\xdb\xf8\xf3I\xb9\xd4\x62\xb3\x86+\xb6ie\x11$\x9b\x14)$\xe0\x1e[8\xfc\x33\xed@\x1b\xd6\xba\x8d\xa5\xe5\xd5\xcd\xb5\xb4\xeb$\xb6\xa4,\xca\xa0\xfc\x84\xe7\x8c\xf4=\x0fN\x98\xabT\x01\xcf\xf8\xef\xfe\x45\x0b\xef\xfbg\xff\x00\xa3\x16\xb9\x9f\x0c\x11\xa1\xf8\xa2\xc6\x1d\xca\x96\xfa\xa5\x84N\x07\x98@\x0eP\x1c\x90z\x92\xca\xc0\x0f\xf6\xf8\xf4\xa0\x0e\xf3S\xbdM7M\xb9\xbd\x93i\x10\x46_k6\xdd\xc4\x0e\x17>\xe7\x03\xf1\xaf-\xd3\xac\xda\x39\xfc;\xa8L\xdb\xe7\xbe\xd4\x19\xda\x42\xc4\xb3\x05x\xc7\x39\xef\xbby\xfch\x03\xd1\x35\xadw\xfb''Q\xd2\xed>\xcd\xe6\xfd\xbe_/v\xfd\xbb\x39Q\x9c`\xe7\xef{t\xabZ\xbe\xafi\xa2\xd9}\xaa\xf5\xd9P\x9d\xaa\x15I,\xd8$\x01\xf5\xc1\xeb\x81@\x1c\xef\xfc''\x13G\xfe\x91q\xa0_G\xa7\x9e\x45\xce\x0f*~\xe9\xc1\x00s\x91\xfc]\xfb\xd7\x45.\xa9\x07\xf6$\xba\xa5\xab-\xc4)\x03L\xbbN7m\x04\xe3\xdb\xa6=\xa8\x03\x9d\xb6\xf1\xc4\xd7\xe9\x00\xd3tI\xee\xe7o\xf5\xc8\x8ev\xc2K\x10\xa0\xb6\xdcr\x06rp\x07\xaf\x5cmx\x83\xc4\x16\x9a\x05\xa8\x92\xe7s\xcb o&%\x07\xf7\x84\x63\xbf\x41\xd4u\xfdzP\x06*\xf8\xde\xe2\xdeh\x8e\xab\xa0\xdd\xd8Z\xbb\xeci\xdfq\x0aO\xb1Q\x9f\xe7\x8c\xf5\xae\x99\xf5\x1bH\xf4\xd1\xa8\xc9:\xa5\xa1\x8cK\xe6\x30#\xe5##\x8e\xbc\xe4q\xd6\x80\x39\x9f\xf8Mo.?{\xa7\xf8n\xfa\xe6\xd5\xbe\xe4\xbc\x8d\xde\xbd\x14\x8e\xb9\x1d{V\xc7\x87<Ek\xe2\x1by\x1e\xdd$\x8aXv\x89\x63q\xf7I\x1d\x8fq\xc1\xf4<t\x14\x01\x1f\x88|Mo\xa2\x32[\xac\x32]_K\xb7\xcb\xb6@A`I\x19\xce\x0f\xa1\x18\x19\x39\xc7\x1d\xeb\x36\x0f\x1c\x18n\x92=kI\xb9\xd2\xe2\x90\x1d\xb2\xc8\x19\xb2G\xb6\xd0\x7f,\xf5\x1fZ\x00\xb9\xe3MJ\xe6\xcbJ\x92\x08\x34\xe9n\x92\xe6\x09RIS8\x80m\xc6\xe3\x80}I\xed\xd2\xb9\xbf\x0cx\x82\xff\x00M\xd0\xe1\xb7\xb4\xf0\xdd\xcd\xd2\x65\x98\xdc\x44\x18\x09\x09\x63\xcf\x08s\x8e\x07^\xd4\x01_\xc3\xfa\xf5\xfd\x96\xab\xacO\x06\x87st\xf7\x33\xef\x92$\xdd\x98\x0e\xe7;N\x14\xfa\x91\xdb\xa5zu\x00s\xfe;\xff\x00\x91\x42\xfb\xfe\xd9\xff\x00\xe8\xc5\xac\x1f\x11\xdbJ\xbe\x0e\xd0u[b\xc2k\x08\xe1`\xdc\x61\x41U\xe7\x07\xaf\xcc\x13\xf3\x34\x01k\xc6\xfa\x93_hze\xa5\x92\xc9\xbfVtdV\x0a\x32\xbc\x10\xa4\x93\xc1\xdc\xc9\xf9\x1e}[\xe2\x8b\x64\xb3\xd5|#k\x19\x62\x90N#R\xddH\x0d\x10\x19\xfc\xa8\x02o\x1a\x7f\xc8\xc3\xe1\x8f\xfa\xfb\xff\x00\xd9\xe3\xa8\xfc\x45\x0a\xea>?\xd1\xb4\xfb\x93\xba\xd5\x62\x33yx\x18''\xe6''9\x1c\x83\xb1\x41\x1e\x94');

-- specialized systems

INSERT INTO map(maptype,map,src,val)VALUES('OS', 'PIX6',    'ICMP.Echo.Fingerprint','echo,ttl=255,idz=0,df=0,bytes=32,payload=\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f');
INSERT INTO map(maptype,map,src,val)VALUES('OS', 'IOS',     'ICMP.Echo.Fingerprint','echo,ttl=255,idz=0,df=0,bytes=72,payload=\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD\xAB\xCD');

-- embedded devices

INSERT INTO map(maptype,map,src,val)VALUES('HW', 'IOLAN','ICMP.Echo.Fingerprint','echo,ttl=255,idz=0,df=0,bytes=32,payload=abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80');
INSERT INTO map(maptype,map,src,val)VALUES('HW', 'NPortExpress','ICMP.Echo.Fingerprint','echo,ttl=32,idz=0,df=0,bytes=56,payload=\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25');



