利用TTL值来鉴别操作系统

TTL:生存时间
指定数据报被路由器丢弃之前允许通过的网段数量。
TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。
转发 IP 数据包时,要求路由器至少将 TTL 减小 1。
使用PING时涉及到的 ICMP 报文类型

一个为ICMP请求回显(ICMP Echo Request)

一个为ICMP回显应答(ICMP Echo Reply)

三、TTL 字段值可以帮助我们识别操作系统类型。

UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255

Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64

微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128

微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32

当然,返回的TTL值是相同的

但有些情况下有所特殊

LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64

FreeBSD 4.1, 4.0, 3.4;

Sun Solaris 2.5.1, 2.6, 2.7, 2.8;

OpenBSD 2.6, 2.7,

NetBSD

HP UX 10.20
ICMP 回显应答的 TTL 字段值为 255

Windows 95/98/98SE
Windows ME

ICMP 回显应答的 TTL 字段值为 32

Windows NT4 WRKS

Windows NT4 Server

Windows 2000
ICMP 回显应答的 TTL 字段值为 128

这样,我们就可以通过这种方法来辨别

操作系统 TTL
LINUX 64
WIN2K/NT 128
WINDOWS 系列 32
UNIX 系列 255
不同操作系统,返回的默认TTL值是不同的。

操作系统 TCP传输 UDP传输

AIX 60 30

DEC Patchworks V5 30 30

FreeBSD 2.1 64 64

HP/UX 9.0x 30 30 HP/UX 10.01 64 64
Irix 5.3 60 60
Irix 6.x 60 60
UNIX 255 255

Linux 64 64

MacOS/MacTCP 2.0.x 60 60
OS/2TCP/IP 3.0 64 64
OSF/1 V3.2A 60 30
Solaris 2.x 255 255

SunOS 4.1.3/4.1.4 60 60
Ultrix V4.1/V4.2A 60 30
VMS/Multinet 64 64

VMS/TCPware 60 64

VMS/Wollongong 1.1.1.1 128 30

VMS/UCX (latest rel.) 128 128
MS Windows 95/98/NT 3.51 32 32

Windows NT4.0/2000/XP/2003 128 128

不过这只是默认 可以通过修改TTL 改变这个的

具体实现方法:

修改TTL值其实非常简单,通过注册表编辑器就可以实现,点击“开始→运行”,在“运行”对话框中输入“regedit”命令并回车,弹出“注册表编辑器”对话框,展开“HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters”,找到“DefaultTTL”,将该值修改为十进制的“255”,重新启动服务器系统后即可。

发表评论

邮箱地址不会被公开。 必填项已用*标注

click to changeSecurity Code