精确一些比较好,追捕获取的是“winNT/UNIX”,闹的我也搞不出到底是UNIX还是NT
解决方案 »
- 一个Windows mcisendstring 函数问题求救谢谢!
- tab中对话框如何相应菜单命令
- CString 转 为 double 问题
- 请问如何改变list control里的字体大小
- 急需2个头文件!!Userenv.h 和 Sddl.h
- 本人要画一个圆柱,并绕Y轴转一个角度
- 工作之需 要用vc做一播放控件。。。高手请给一些指导性建议
- 把数据从access导出到文本文件,为什么不可以选择指定的字段呢?
- 图像的直线拟合中如何去掉噪声点
- 请教!!!:vc怎样调用ORACLE的存储过程?有例程吗?多谢!!!
- 有两个LISTCTRL控件,能不能只用一两条语句就把LISTCTRL1的内容导入LISTCTRL2中?
- 我现在想用CGridCtrl作一个简单的报表,有几个问题向大家请教,欢迎讨论!
我想做twwwscan这样的东西,我不想用它啊
用了Netscape-Enterprise就用UNIX? 除了这么判断有没有别的方法啊?
要是一定需要这么判断,那么,那些服务程序跟操作系统是一一对应的?
返回的TTL为126即是WINDOWS系列。243是UNIX
至于其它的, 多多观察就知道了。
TTL= 118
ping www.hl.cninfo.net
TTL= 252
ping www.vcdv.net
TTL= 244
ping www.whitehouse.gov
Destination Net Unreachable
ping www.microsoft.com [www.microsoft.akadns.net]
time out
ping www.csdn.com
TTL= 49TTL真不好观察啊,不过多谢人狼了,起码有点思路了.
还有一点啊,好象TTL的值是从0开始排列到2百多,有这么多种操作系统么?
请问greensleeve,NetBIOS怎么用?NetBIOS的端口不是139么?很多网站把NetBIOS都关闭了。
具体怎么实现?
Alfredo Andr's Omella
翻译:XUNDI
http://focus.silversand.net
补充:backend
整理:backend
http://www.nsfocus.com
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 000020: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
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.tgz2)相关链接:http://www.sys-security.com
http://sourceforge.net/projects/sing
如连接到www。remote.org的80端口,然后GET / HTTP/1.0,得到的前几行就告诉你
“我的操作系统及版本号,我的WEB服务器名称和版本号”。。,如果不想写程序,可用Telnet。/*[email protected]*/
"GET / HTTP/1.0 \r\n"返回都都是WEB SERVER的类型/版本,如下面:HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
可是,unix的,本来我就不大懂,还不是windows的,真是雪上加霜啊
哪位大峡有过移植程序的经验?哪位大峡愿意帮忙?
unix的那些头文件对应在windows下vc中用的的头文件是什么?
函数做的改动大不大?要注意些什么?我先给您鞠个躬了!!!!源代码在:
http://prdownloads.sourceforge.net/sing/SING-1.1.tgz
| |
| +-------+ +-------+ |
| | | ICMP Echo Request | | |
| | HOST | --------------------------> | HOST | |
| | | | | |
| | A | | B | |
| | | <-------------------------- | | |
| | | ICMP Echo Reply | | |
| +-------+ +-------+ |
| |
+---------------------------------------------------------------+ 这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到。 典型的例子 C:\>ping 192.168.0.1 Pinging 192.168.0.1 with 32 bytes of data: Reply from 192.168.0.1: bytes=32 time<10ms TTL=128
Reply from 192.168.0.1: bytes=32 time<10ms TTL=128
Reply from 192.168.0.1: bytes=32 time<10ms TTL=128
Reply from 192.168.0.1: bytes=32 time<10ms TTL=128 Ping statistics for 192.168.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms 二、注意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 经过测试的操作系统如下: LINUX Kernel 2.2.x, Kernel 2.4t1-6; FreeBSD 4.1,4.0,3.4; OpenBSD 2.7,2.6; NetBSD
1.4.2; Sun Solaris 2.5.1,2.6,2.7,2.8; HP-UX 10.20, 11.0; AIX 4.1, 3.2; Compaq
Tru64 5.0; Irix 6.5.3,6.5.8; BSDI BSD/OS 4.0,3.1; Ultrix 4.2-4.5; OpenVMS 7.1-2;
Windows 95/98/98SE/ME; Windows NT 4 Workstation SP3, SP4, SP6a; Windows NT 4
Server SP4; Windows 2000 Professional, Server, Advanced Server. 附: ICMP报文的类型包括如下: ECHO (Request (Type 8), Reply (Type 0))--回显应答, Time Stamp (Request (Type 13), Reply (Type 14))--时间戳请求和应答, Information (Request (Type 15), Reply (Type16))--信息请求和应答, Address Mask (Request (Type 17), Reply (Type 18))--地址掩码请求和应答等 参考资料来源: WINDOWS 2K 系统帮助文件
http://www.sys-security.com http://www.patching.net
中华补天网
[email protected] -----BEGIN PGP SIGNATURE-----
Version: PGP 7.0 iQA/AwUBOmGYKPsP3TpG7iPFEQIOsQCfar2y+FYhUePy6HjJJ3J/7d8+JO4AniCj
b9/eLXXx18XFtt0YDldeYrAE
=b5RY
-----END PGP SIGNATURE-----
拘我所知csdn.net是win2k,拘阿丰所说ttl应该是128
可我ping出来的是118?
阿丰贴文中说的192.168.0.1显示ttl为128
我刚才ping出来的是246246和118是什么系统呢?