Определение операционной системы на удаленном компьютере

Определить ОС на удаленном компьютере можно, если знать стандартные значения параметров 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