icmp报文格式,利用ICMP请求报文探测主机操作系统

利用ICMP请求报文探测主机操作系统 - 电脑技巧 - 电脑教程网

利用ICMP请求报文探测主机操作系统

日期:2006-10-14   荐:
1) 根据ICMP地址掩码请求探测SUN操作系统

对于ICMP地址掩码请求,只有少数操作系统会产生相应的应答,这些系统
包括ULTRIX OpenVMS, Windows 95/98/98 SE/ME, NT below SP 4, 和 SUN
Solaris机器。但其中SUN机器对碎片ICMP地址掩码请求(fragmented ICMP
Address Mask Requests)的应答不一样,所以允许远程用户来鉴定SUN主
机操作系统。

下面是通过由Alfredo Andres Omella写的SING(http://sourceforge.net/
projects/sing)对SUN SOLARIS2.7机器正常的地址掩码请求:

# ./sing -mask IP_Address
SINGing to IP_Address (IP_Address): 12 data bytes
12 bytes from IP_Address: icmp_seq=0 ttl=236 mask=255.255.255.0
12 bytes from IP_Address: icmp_seq=1 ttl=236 mask=255.255.255.0
12 bytes from IP_Address: icmp_seq=2 ttl=236 mask=255.255.255.0
12 bytes from IP_Address: icmp_seq=3 ttl=236 mask=255.255.255.0
12 bytes from IP_Address: icmp_seq=4 ttl=236 mask=255.255.255.0

--- IP_Address sing statistics ---
5 packets transmitted, 5 packets received, 0% packet loss

操作系统会回答一个ICMP的地址掩码请求并带有其响应的网络地址掩码。

下面我们来看我们发送一些碎片请求,下面的例子是通过发送8字节的IP数
据碎片到同样上面操作的SUN SOLARIS2.7机器上,就可以看到我们获得的
回应和刚才的不一样了(-c 2是允许SING发送两个ICMP地址掩码请求):

# ./sing -mask -c 2 -F 8 IP_Address
SINGing to IP_Address (IP_Address): 12 data bytes
12 bytes from IP_Address: icmp_seq=0 ttl=241 mask=0.0.0.0
12 bytes from IP_Address: icmp_seq=1 ttl=241 mask=0.0.0.0

--- IP_Address sing statistics ---
2 packets transmitted, 2 packets received, 0% packet loss

如果用tcpdump监听,有如下输出:

20:02:48.441174 ppp0 > slip139-92-208-21.tel.il.prserv.net > Host_Address:
icmp: address mask request (frag 13170:8@0+)
        4500 001c 3372 2000 ff01 50ab 8b5c d015
        xxxx xxxx 1100 aee3 401c 0000
20:02:48.442858 ppp0 > slip139-92-208-21.tel.il.prserv.net > Host_Address:
(frag 13170:4@8)
        4500 0018 3372 0001 ff01 70ae 8b5c d015
        xxxx xxxx 0000 0000
20:02:49.111427 ppp0 < Host_Address > slip139-92-208-21.tel.il.prserv.net:
icmp: address mask is 0x00000000 (DF)
        4500 0020 3618 4000 f101 3c01 xxxx xxxx
        8b5c d015 1200 ade3 401c 0000 0000 0000

20:02:49.441492 ppp0 > slip139-92-208-21.tel.il.prserv.net > Host_Address:
icmp: address mask request (frag 13170:8@0+)
        4500 001c 3372 2000 ff01 50ab 8b5c d015
        xxxx xxxx 1100 ade3 401c 0100
20:02:49.442951 ppp0 > slip139-92-208-21.tel.il.prserv.net > Host_Address:
(frag 13170:4@8)
        4500 0018 3372 0001 ff01 70ae 8b5c d015
        xxxx xxxx 0000 0000
20:02:50.011433 ppp0 < Host_Address > slip139-92-208-21.tel.il.prserv.net:
icmp: address mask is 0x00000000 (DF)
        4500 0020 3619 4000 f101 3c00 xxxx xxxx
        8b5c d015 1200 ace3 401c 0100 0000 0000

这样你就可以看到SUN SOLARIS回应的网络地址掩码是0.0.0.0。

我们可以使用下面的方法解决这个问题:

ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0

[1] [2]  

ndd -set /dev/ip ip_respond_to_echo_broadcast 0
ndd -set /dev/ip ip_respond_to_timestamp 0
ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0
ndd -set /dev/ip ip_forward_directed_broadcasts 0


2、利用ICMP时间戳请求报文探测Windows 98/98 SE/ME/2000操作系统

Microsoft Windows 98/98 SE/ME/2000 Profressional/2000 Server操作
系统对于将代码(code)段置为0的ICMP时间戳请求报文将不产生任何应
答报文。

根据这个特性,可以通过两种格式的ICMP时间戳请求探测并确定Microsoft
Windows的操作系统类型。首先是正常的请求报文,不产生应答报文的
Windows主机的操作系统类型为Microsoft Windows 95、Microsoft Windows
NT 4.0 Workstation with SP6a(及以下版本)。其它的操作系统(包括
UNIX系列)则会产生相应的应答报文。接着发送定制格式的时间戳请求ICMP
报文,其中的代码(code)段置为非零值,Windows98/98 SE/ME/2000
Profressional/2000 Server等较新版本的操作系统将不产生应答报文,
而其它操作系统则根据此请求回复正确的应答报文。

涉及(经过测试)的操作系统:
Linux Kernel 2.4t2; LINUX Kernel 2.2.14; FreeBSD 4.0, 3.4;
OpenBSD 2.7 & 2.6; Solaris 2.5.1, 2.6, 2.7 & 2.8; HP-UX 10.20;
AIX 4.1; ULTRIX; Microsoft Windows 95 / 98 / 98SE / ME / NT 4 SP3,
SP4, SP6a WRST & SERVER / 2000 Professional & Server.


参考:

1)SING可以到以下网址下载:

http://download.sourceforge.net/sing/SING-1.0b7.tgz

2)相关链接:

http://www.sys-security.com
http://sourceforge.net/projects/sing


(出处:http://www.sheup.com)


 [1] [2] 

OpenBSD 2.7 & 2.6; Solaris 2.5.1, 2.6, 2.7 & 2.8; HP-UX 10.20;
AIX 4.1; ULTRIX; Microsoft Windows 95 / 98 / 98SE / ME / NT 4 SP3,
SP4, SP6a WRST & SERVER / 2000 Professional & Server.


参考:

1)SING可以到以下网址下载:

http://download.sourceforge.net/sing/SING-1.0b7.tgz

2)相关链接:

http://www.sys-security.com
http://sourceforge.net/projects/sing


(出处:http://www.sheup.com)


 [1] [2] [3] 

标签: