对操作系统的认识,对于每一个从事计算行业的人都是很重要,要成为一名黑客更是要对操作系统有深入、深刻的认识。下面就和大家一起来探讨一下这方面的问题。
我们先来看分析一下一个黑客入侵的基本过程:1、判断入侵对象的操作系统—>2、描扫端口,判断开放了那些服务(这两步有可能同时进行)—>3、跟据操作系统和所开放的服务选择入侵方法,通常有“溢出”和“弱口猜测”两种方法—>4、获得系统的最高权力—>5、安放后门、清除日志走人(也许有格盘走人的)。
由上面能够知道,在整个过程当中对操作系统类型的判断识别是最基本也是很关系的一步。可想而知,假如您连对方的操作系统是什么都不知道,要想入侵跟本无从谈起。
也许很少人问过自己,我们为什么要先了解对方的操作系统呢?其实,我们了解操作系统的原因是因为我们要了解系统内存的工作况态,了解他是以什么方式,基于什么样的技术来控制内存,连同怎么样来处理输入和输出的数据的。世上任何东西都不可能是尽善尽美的(当然这也是我们人类不断追求的动力所在),作为复杂的电脑系统更如此,他在控制内存和处理数据的过程中总是有可能出错的(特别是在安装了其他的应用程式以后),系统本身也会存在各种各样的弱点和不足之处。黑客之所以能够入侵,就是利用了这些弱点和错误。现在网上流行的各种各样的入侵工具,都是黑客在分析了系统的弱点及存在的错之后编写出来的。(其中以“缓冲区溢出”最为常见)
作为一般的黑客,我们只要善于使用现成的入侵工具,就能够达到我们入侵的目的。但是因为不同的系统,其工作原理不相同,所以不同的入侵工具只能针对相应的操作系统。因此,对操作系统的识别是必不可少的,这就需要我们对操作系统有相当的了解,对网络有一定的基础识(要作黑客还是不那么容易的),关于各类操作系统的介绍,在网上有成堆的文章,大家能够自己去查阅。
在此介绍一此简单的操作系统识别方法给大家,希望对大家有用。
一、用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(当然假如有NC最好用NC,他能够不用盲打)他的80端口。
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权任何 1985-1998 Microsoft Corp.
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
The parameter is incorrect.
遗失对主机的连接。
C:/>
那么这台就肯定是windows的机子。
假如返回,
Method Not Implemented
get to / not
supported.
Invalid method in request get
Apache/1.3.27 Server at gosiuniversity.com Port 80
遗失对主机的连接。
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.2none)):
那么这就肯定是一台win2000的机子了,我们还能够知道主机名呢,主机名就是sgyyq-c43s950。这个FTP是windows的IIS自带的一个FTP服务器。
假如返回,
Connected to 10.1.1.3.
220 Serv-U FTP Server v4.0 for WinSock ready...
User (10.1.1.3none)):
也能够肯定他是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.3none)):
那么这就是一台UINX的机子了。
3、假如开了23端口,这个就简单了,直接telnet上去。
假如返回,
Microsoft (R) Windows (TM) 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协议栈,从而造成了操作系统之间协议栈的不同。因此我们能够通过分析协议栈的不同来区分不同的操作系统,只要建立起协议栈和操作系统对应的数据库,我们就能够准确的识别操作系统了。现在来说,用这种技术识别操作系统是最准确,也是最科学的。因此也被称为识别操作系统的“指纹技术”。当然识别的能力和准确性,就要看各软件的数据库建立情况了。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




