荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: roic (病毒小子), 信区: Security
标  题: 30天打造专业红客第8天从回答一个朋友的问题说起
发信站: 荔园晨风BBS站 (2005年05月31日10:46:22 星期二), 站内信件

有个朋友发了短信给我问怎么判断对方主机的操作系统呢?今天我们就先说说这个问题。
我先从最简单的PING看主机操作系统说起

一、用ping来识别操作系统
C:\>ping 10.1.1.2

Pinging 10.1.1.2 with 32 bytes of data:

Reply from 10.1.1.2: bytes=32 time<10ms TTL=128
Reply from 10.1.1.2: bytes=32 time<10ms TTL=128
Reply from 10.1.1.2: bytes=32 time<10ms TTL=128
Reply from 10.1.1.2: bytes=32 time<10ms TTL=128

Ping statistics for 10.1.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\>
C:\>ping 10.1.1.6

Pinging 10.1.1.6 with 32 bytes of data:

Request timed out.
Reply from 10.1.1.6: bytes=32 time=250ms TTL=237
Reply from 10.1.1.6: bytes=32 time=234ms TTL=237
Reply from 10.1.1.6: bytes=32 time=234ms TTL=237

Ping statistics for 10.1.1.6:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 234ms, Maximum = 250ms, Average = 179ms
我们跟据ICMP报文的TTL的值,我们就可以大概知道主机的类型。如:TTL=125左右的主机
应该是windows系列的机子,TTL=235左右的主机应该是UINX系列的机子。如上面的两个例
子,10.1.1.2就是win2000的机子,而10.1.1.6则是UINX(Sunos 5.8)的机子。这是因为
不同操作系统的机子对ICMP报文的处理与应答是有所不同的,TTL值每过一个路由器会减1
。所以造成了TTL回复值的不同。对于TTL值与操作系统类型的对应,还要*大家平时多注意
观察和积累。


二、直接通过联接端口根据其返回的信息来判操作系统
这种方法应该说是用得最多的一种方法,下面我们来看几个实例。
1、如果机子开了80端口,我们可以telnet它的80端口。

C:\>telnet 10.1.1.2 80
输入get 回车(注意这里是盲打)
如果返回,
HTTP/1.1 400 Bad Request
Server: Microsoft-IIS/5.0
Date: Fri, 11 Jul 2003 02:31:55 GMT
Content-Type: text/html
Content-Length: 87

<html><head><title>Error</title></head><body>The parameter is incorrect.
</body>
</html>

遗失对主机的连接。
C:\>
那么这台就肯定是windows的机子。
如果返回,
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>501
Method
Not Implemented</TITLE> </HEAD><BODY> <H1>Method Not Implemented</H1> get to
/ not
supported.<P> Invalid method in request get<P><HR> <ADDRESS>Apache/1.3.27
Server at gosiuniversity.com Port 80</ADDRESS>
</BODY></HTML>
遗失对主机的连接。
C:\>
那么多数就是UINX系统的机子了。
2、如果机子开了21端口,我们可以直接FTP上去
C:\>ftp 10.1.1.2
如果返回,
Connected to 10.1.1.2.
220 sgyyq-c43s950 Microsoft FTP Service (Version 5.0).
User (10.1.1.2:(none)):
那么这就肯定是一台win2000的机子了,我们还可以知道主机名呢,主机名就是sgyyq-c43s
950。这个FTP是windows的IIS自带的一个FTP服务器。
如果返回,
Connected to 10.1.1.3.
220 Serv-U FTP Server v4.0 for WinSock ready...
User (10.1.1.3:(none)):
也可以肯定它是windows的机子,因为Serv-U FTP是一个专为windows平台开发的FTP服务器

如果返回,
Connected to 10.1.1.3.
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
User (10.1.1.3:(none)):
那么这就是一台UINX的机子了。
3、如果开了23端口,这个就简单了,直接telnet上去。
如果返回,
Microsoft &reg; Windows &#8482; Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99201.1
login:
那么这肯定是一台windows的机子了
如果返回,
SunOS 5.8
login:
不用说了,这当然是一台UINX的机子了,并且版本是SunOS 5.8的

三、利用专门的软件来识别
这种有识别操作系统功能的软件,多数采用的是操作系统协议栈识别技术。这是因为不同
的厂家在编写自己操作系统时,TCP/IP协议虽然是统一的,但对TCP/IP协议栈是没有做统
一的规定的,厂家可以按自己的要求来编写TCP/IP协议栈,从而造成了操作系统之间协议
栈的不同。因此我们可以通过分析协议栈的不同来区分不同的操作系统,只要建立起协议
栈与操作系统对应的数据库,我们就可以准确的识别操作系统了。
下面是简单介绍两款有识别功能的软件,具体用法我就不说,你可以到网上去找找相应软
件的说明使用

一是nmap,下载地址:http://www.linuxeden.com/download/indexsoft.php?category=sys
secure 它采用的是主动式探测,探测时会主动向目标系统发送探测包,根据目标目标机回
应的数据包来,叛断对方机的操作系统。


2、 天眼,采用的是被动式的探测方法。不向目标系统发送数据包,只是被动地探测网络
上的通信数据,通过分析这些数据来判断操作系统的类型。配合supersan使用,较果很好

下载地址 http://www.xfocus.net/tools/200206/天眼1.0.5.zip


--
*┌──────────────────────────────────────?
*│*对酒当歌,做个洒脱的我,不理世界说我是何只要做个真我,在笑声里渡过,懒管它功或过
*│*对酒当歌,莫记一切因果,风里雨里也快活赏心的过。
*│*重做个真的我,回问那假的我,半生为何?眠后醉,醉后眠,眠后再醉又眠,岂求什么。
*│*重做个真的我,回问那假的我,笑痴又傻,谁是我,我是谁,无谓理我是谁,更加好过。
*└──────────────────────────────────────?
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.110.54]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店