TTL(生存时间)是网络发送的数据包中包含的计时器值,它告诉接收者在丢弃和过期数据(数据包)之前要保留或使用该数据包多长时间。对于不同的操作系统,TTL值是不同的。因此,您可以根据TTL值确定操作系统。您可以通过ping地址来获取TTL值。这是通过在我的系统上ping“ subinsb.com”得到的输出:
PING subinsb.com (108.162.199.61) 56(84) bytes of data.
64 bytes from 108.162.199.61: icmp_seq=1 ttl=57 time=503 ms
64 bytes from 108.162.199.61: icmp_seq=2 ttl=57 time=416 ms
从输出中可以看到,您获得了 TTL值。由于此网站托管在Red Hat系统上,因此返回57,接近64(Linux系统的TTL默认值)。因此,从中我们可以了解远
程系统的OS。以下是 不同设备/操作系统的默认TTL值:
设备/操作系统
版本
协议
TTL
AIX
TCP
60
AIX
UDP
30
AIX
3.2, 4.1
ICMP
255
BSDI
BSD/OS 3.1 and 4.0
ICMP
255
Compa
Tru64 v5.0
ICMP
64
Cisco
ICMP
254
DEC Pathworks
V5
TCP and UDP
30
Foundry
ICMP
64
FreeBSD
2.1R
TCP and UDP
64
FreeBSD
3.4, 4.0
ICMP
255
FreeBSD
5
ICMP
64
HP-UX
9.0x
TCP and UDP
30
HP-UX
10.01
TCP and UDP
64
HP-UX
10.2
ICMP
255
HP-UX
11
ICMP
255
HP-UX
11
TCP
64
Irix
5.3
TCP and UDP
60
Irix
6.x
TCP and UDP
60
Irix
6.5.3, 6.5.8
ICMP
255
juniper
ICMP
64
MPE/IX (HP)
ICMP
200
Linux
2.0.x kernel
ICMP
64
Linux
2.2.14 kernel
ICMP
255
Linux
2.4 kernel
ICMP
255
Linux
Red Hat 9
ICMP and TCP
64
MacOS/MacTCP
2.0.x
TCP and UDP
60
MacOS/MacTCP
X (10.5.6)
ICMP/TCP/UDP
64
NetBSD
ICMP
255
Netgear FVG318
ICMP and UDP
64
OpenBSD
2.6 & 2.7
ICMP
255
OpenVMS
07.01.2002
ICMP
255
OS/2
TCP/IP 3.0
64
OSF/1
V3.2A
TCP
60
OSF/1
V3.2A
UDP
30
Solaris
2.5.1, 2.6, 2.7, 2.8
ICMP
255
Solaris
2.8
TCP
64
Stratus
TCP_OS
ICMP
255
Stratus
TCP_OS (14.2-)
TCP and UDP
30
Stratus
TCP_OS (14.3+)
TCP and UDP
64
Stratus
STCP
ICMP/TCP/UDP
60
SunOS
4.1.3/4.1.4
TCP and UDP
60
SunOS
5.7
ICMP and TCP
255
Ultrix
V4.1/V4.2A
TCP
60
Ultrix
V4.1/V4.2A
UDP
30
Ultrix
V4.2 – 4.5
ICMP
255
VMS/Multinet
TCP and UDP
64
VMS/TCPware
TCP
60
VMS/TCPware
UDP
64
VMS/Wollongong
1.1.1.1
TCP
128
VMS/Wollongong
1.1.1.1
UDP
30
VMS/UCX
TCP and UDP
128
Windows
for Workgroups
TCP and UDP
32
Windows
95
TCP and UDP
32
Windows
98
ICMP
32
Windows
98, 98 SE
ICMP
128
Windows
98
TCP
128
Windows
NT 3.51
TCP and UDP
32
Windows
NT 4.0
TCP and UDP
128
Windows
NT 4.0 SP5-
32
Windows
NT 4.0 SP6+
128
Windows
NT 4 WRKS SP 3, SP 6a
ICMP
128
Windows
NT 4 Server SP4
ICMP
128
Windows
ME
ICMP
128
Windows
2000 pro
ICMP/TCP/UDP
128
Windows
2000 family
ICMP
128
Windows
Server 2003
128
Windows
XP
ICMP/TCP/UDP
128
Windows
Vista
ICMP/TCP/UDP
128
Windows
7
ICMP/TCP/UDP
128
Windows
Server 2008
ICMP/TCP/UDP
128
Windows
10
ICMP/TCP/UDP
128
如果有时间,我将在将来发布新的重要操作系统时更新此表。您可以通过此表获取默认TTL值的简短版本 :
设备/操作系统
TTL
* nix(Linux / Unix)
64
Windows
128
Solaris / AIX
254
您可以通过ping Gurubaran提到的localhost自己找到它 :
ping -4 localhost
正在 Ping x [127.0.0.1] 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
二、 查看数据包的TTL值并分析传输故障
网络中的网络设备,其内部都是由操作系统进行处理的(有些硬件设备将系统预装在了硬件芯片里面),在网络遇到传输故障时,我们可以使用网络检测软件,结合上表的信息对网络中流通的数据包进行检测,查看数据包的TTL值,以确定故障是否由错误的路由等原因引起。使用科来网络分析系统5.0查看一个数据包TTL值的情况。 (用抓包工具查看TTL值) linux 抓包命令( tcpdump -i eth0 -c 5000 -w eth0.cap )
生存时间(TTL)是247,结合表1,确定出这个数据包在从源端(这里是61.139.2.69)到目的端(这里是192.168.10.44)共经历了255-247=8个路由器,且在传输过程中未出现故障。 注意: 1. 确定数据包在网络中经历了多少个路由器,可用数据包源端设备的TTL默认值减去捕获到的数据包TTL值; 2. 在不知道数据包源端设备的默认TTL时,一般用大于捕获数据包的TTL,且最接近这个TTL的默认值。
3. TTL字段长1个字节,所以TTL的最大值255; 通过查看数据包的TTL,可以确定网络传输是否正常。如果捕获到的数据包的TTL值过小,则表示网络中很可能存在传输故障,应及时检查网络中三层设备的路由表配置,以及各主机上的路由表信息。
````````````````````````````````````````````````````````````````````````````````````````` -A INPUT -p udp -m ttl --ttl-eq 98 -j DROP ; ttl eq 为 等于 = 98 就禁止 -A INPUT -p udp -m ttl --ttl-lt 45 -j DROP ;ttl lt为 小于 < 45 就禁止
````````````````````````
下面分析数据包
1、 使用wireshark 查看cap文件
找到 time to live: 128
攻击的服务器系统应该是windows 内网IP
在没有专用的防护设备的条件下,相对于攻击者而言,防御方在资源方面处于绝对的弱势。对攻击发生时的cap文件进行仔细的分析,找出攻击数据包与正常业务流量中有区别的地方,针对特定的数据进行封堵,能起到很大的防护作用。