Определение операционной системы на удаленном компьютере
Определить ОС на удаленном компьютере можно, если знать стандартные значения параметров TTL (Time To Live), TOS (Type Of Service), TWS (TCP Window Size), etc. Так, пользуясь утилитой ping, возвращающей значение TTL, можно с достоверной точностью судить о типе операционной системы.
Чтобы ввести в недоумение "исследователя", применяющего данный метод, можно поменять стандартные значения ОС Windows на значения других операционных систем.
Это реализуется через реестр. Далее привожу список для разных ОС.
В раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP данные заносятся для Win9x;
В раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters данные заносятся для WinNT;
Windows 95 OSR2
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="9000"
"DefaultTTL"="32"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000020
"TcpWindowSize"=dword:00002328
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
Windows 95 4.00.950/98/NT
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="9000"
"DefaultTTL"="128"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000080
"TcpWindowSize"=dword:00002328
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
Windows 2000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="17000"
"DefaultTTL"="128"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000080
"TcpWindowSize"=dword:00004268
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
Cisco 11.2
Обращаю внимание, что для Cisco Router 25xx значение TTL 255, а для Cisco HUB 150x - 64 (приведены в десятичной системе счисления).
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="65535"
"DefaultTTL"="60"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:0000003c
"TcpWindowSize"=dword:0000ffff
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
AIX 4.3.x
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"HostName"="chert"
"TcpWindowSize"="16000"
"DefaultTTL"="60"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:0000003c
"SynAttackProtect"=dword:00000001
"TcpWindowSize"=dword:00003e80
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
DigitalUnix 4.0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="33580"
"DefaultTTL"="60"
"DefaultTOS"="16"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:0000003c
"TcpWindowSize"=dword:0000832c
"DefaultTOS"=dword:00000010
"EnablePMTUBHDetect"=dword:00000001
FreeBSD 3.x
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="17520"
"DefaultTTL"="64"
"DefaultTOS"="16"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000040
"TcpWindowSize"=dword:00004470
"DefaultTOS"=dword:00000010
"EnablePMTUBHDetect"=dword:00000001
IRIX 6.x
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="61320"
"DefaultTTL"="60"
"DefaultTOS"="16"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:0000003c
"TcpWindowSize"=dword:0000ef88
"DefaultTOS"=dword:00000010
"EnablePMTUBHDetect"=dword:00000001
Linux 2.2.x
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="32120"
"DefaultTTL"="64"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000040
"TcpWindowSize"=dword:00007d78
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
Netware 4.11.x
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="32000"
"DefaultTTL"="128"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000080
"TcpWindowSize"=dword:00007d00
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
OpenBSD 2.x
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="17520"
"DefaultTTL"="64"
"DefaultTOS"="16"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000040
"TcpWindowSize"=dword:00004470
"DefaultTOS"=dword:00000010
"EnablePMTUBHDetect"=dword:00000001
SCO R5
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="24820"
"DefaultTTL"="64"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="0"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000040
"TcpWindowSize"=dword:000060f4
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000000
Solaris 8
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP]
"TcpWindowSize"="24820"
"DefaultTTL"="64"
"DefaultTOS"="0"
"EnablePMTUBHDetect"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:00000040
"TcpWindowSize"=dword:000060f4
"DefaultTOS"=dword:00000000
"EnablePMTUBHDetect"=dword:00000001
И еще две ОС. К сожалению известны только TTL.
OS/2 Merlin - 255
HP-UX 10.20 - 255