(这条文章已经被阅读了 120 次) 时间:2000-12-18 11:24:58 来源:wuhanman (wuhanman) 原创-IT
黑客在攻击之前,扫描一个系统是绝对不可缺的。黑客攻击就和战争一样,知己知彼,方能百战不殆。如果一个黑客连自己将要攻击站点的系统都不知道,我真不知道他还能干些什么?
完成一次成功的网络攻击,第一步就是要收集目标站点的各种信息。攻击者对目标进行彻底分析,他必须尽可能收集关于他所攻击目标的大量可能而有效的信息,以至最后他可以分析得到他所攻击目标的漏洞列表。分析结果包括:操作系统类型,操作系统的版本,所开的服务,所开服务的版本,网络拓朴结构,网络设备,防火强,闯入察觉装置等等,收集这些信息的办法大致可以分为两种:
第一种被称为”noisy”,意思就是不管在日志记录中留下的脚印,动用所有的办法进行对目标进行扫描(这种方法很危险,但是好像初学者都用这样的,hoho反正我是不敢的)。
第二种被称为”stealthy”,就是秘密扫描(半速扫描),尽量不引起管理员的注意力。但是这种扫描唯一的缺点就是不太准确。但是对于一个真正的黑客来说,这才是首选。毕竟自身安全高于一切。被抓到了,就算攻击成功,还是失败者。
现在让我们来具体讲讲有关扫描的关键技术吧。其实说白了,也挺简单的。
传统的扫描方式:主要是是利用直接登陆主机的办法来识别的。telnet,ftp,webserver都能暴露主站的系统信息。还有一些不是很有效的方法诸如利用查询DNS(域名解析)的主机信息来看登记域名时的申请机器类型和操作系统类型,或者使用社会工程学的方法来获得,以及利用某些主机开放的SNMP的公共组来查询。但是这些都不能绝对相信,高智商的系统管理员会修改系统信息,来误导登陆者的。毕竟他们需要保护自己的站点(但我总觉得骗人的行为不是很好,虽然我也常这么做)。如果你被系统信息愚弄了,那我就恭喜啦,你不仅得不到任何权限,而且你会暴露你的方位。后果,就不用我来罗嗦了吧。
目前的技术:利用TCP/IP堆栈指纹的方法,也叫Overview。其实也是一种溢出(溢出的作用还真是大,扫描,攻击都用得着)。利用网络操作系统里的TCP/IP堆栈作为特殊的“指纹”来确定系统的真正身份。这种的准确性相当高,因为再精明的管理员都不太可能去修改系统底层的网络的堆栈参数。目前,利用这种技术实现的工具很多,比较著名有NMAP,CHECKOS,QUESO等。不过他们实现的手段主要还是三种。
1.利用用FIN探测:通过向目标机发送一个FIN的包(或者是任何没有ACK或SYN标记的包)到目标主机的一个开放的端口然后等待回应。许多系统如MS-WINDOWS,BSDI,CISCO, HP/UX,MVS和IRIX会返回一个RESET(复位标记)。利用BOGUS标记探测:通过发送一个SYN包,它含有没有定义的TCP标记的TCP头。那么在LINUX系统的回应任就会包含这个没有定义的标记,而在一些别的系统则会在收到SYN+BOGU包之后关闭连接。利用这些特性,可以区分一些操作系统。
2.利用TCPISN采样:这是利用寻找初始化序列规定长度与特定的操作系统相匹配的方法。利用它可以对许多系统分类,如较早的UNIX系统是64K长度。一些新的UNIX系统则是随机增长的长度(Solaris,IRIX,FreeBSD,DigitalUnix,Cray等)使用Don’tFragment位:许多操作系统在发送的包里使用这个位,由此可以确定操作系统的类型。
3.利用TCP的初始化窗口:在这里只是简单地检查返回包里包含的窗口长度。这项技术根据各个操作系统的不同的初始化窗口大小来唯一确定它们。
扫描的技术的更新频率是相当高的,但是原理确是很简单。只要用心,任何事情都不难。好了,今天就到这儿吧。如果你们还有什么不懂的地方,可以给我Mail([email protected])。