黑客常用的扫描器是怎样的存在?
在Internet安全领域,扫描器是常用攻击工具之一。许多 *** 入侵是从扫描开始的。利用扫描器能够找出目标主机的各种安全漏洞,尽管其中的一些漏洞早已公布于众,但在许多系统中仍然存在,于是给了外部入侵以可乘之机。
扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器,我们可以自动发现系统的安全缺陷。不同的扫描器检查不同的安全漏洞,但一般来说归结为两种类型:
主机系统扫描器;
*** 扫描器。
主机系统扫描器用来扫描查找本地主机的安全漏洞,这些漏洞经常是错误的文件权限配置和默认帐号。主机系统扫描器的最常见工具是COPS(Computer Oracle and Password System) ,它是用来检查UNIX系统的常见安全配置问题和系统缺陷。 *** 扫描器是通过检查可用的端口号和服务,查找远程攻击者所能利用的安全缺陷。SATAN(System Administrator’s Tool for Analyzing Networks)是一个著名的 *** 扫描器,它可以用来发现以下方面的漏洞:
文件传输协议漏洞;
*** 文件系统漏洞;
*** 信息服务口令漏洞;
远程shell访问漏洞;
Sendmail漏洞漏洞;
普通文件传输协议漏洞;
X服务器安全和访问控制。
另外,还有SAINT、ISS 、NESSUS、NMAP 等有名的 *** 扫描器。由于 *** 系统中有新的漏洞出现,所以扫描器要不断地更新的检查漏洞库或检查程序。
工作原理
尽管从技术的角度来看,主机系统扫描器和 *** 扫描器不尽同,但是它们具有共同的特征。其中,就是扫描器的检测机制。大多数扫描器按上图所示的工作流程工作。
以 *** 扫描器为例,我们分析扫描器的工作原理。 *** 扫描器是通过连接远程TCP/IP不同的端口的服务,并记录目标给予的回答,就可以搜集到很多关于目标主机的各种有用的信息(如是否能用匿名登录访问FTP服务,是否有可写的FTP目录,是否能用Telnet,HTTPD是用Root还是普通用户在运行)。
当目标主机运行的是Unix操作系统时,通常提供了较多的服务。可以对该主机的端口扫描一遍,检测它提供了哪些服务。例如,扫描主机192.168.0.68的10到100之间的端口,结果如下:
$portscan 192.168.0.68 10 100
192.168.0.68 21 accepted
192.168.0.68 23 accepted
192.168.0.68 25 accepted
192.168.0.68 80 accepted
可以看出,主机192.168.0.68在21、23、25和80这些端口都提供服务。对于1024以下的端口,端口号与服务的对应是固定的。例如:
21对应的是FTP服务
23对应的是telnet服务
25对应的是mail服务
80对应的是Web服务
在Unix系统中,还有一些可以扫描某些特定服务的工具,用于观察某一特定服务进程是否正在远程主机上运行。例如,rusers和finger,这两个都是Unix命令。通过这两个命令,你能收集到目标计算机上的有关用户的消息。使用rusers命令,产生的结果如下示意:
wh yjb.dcs:ttyp1 Nov 13 15:42 7:30 (remote)
root yjb.dcs:ttyp2 Nov 13 14:57 7:21 (remote)
显示了通过远程登录的用户名,还包括上次登录时间、使用的Shell类型等信息。使用finger可以产生类似下面的结果:
user S00 PPP ppp-122-pm1.wiza Thu Nov 14 21:29:30 - still logged in
user S15 PPP ppp-119-pm1.wiza Thu Nov 14 22:16:35 - still logged in
user S04 PPP ppp-121-pm1.wiza Fri Nov 15 00:03:22 - still logged in
user S03 PPP ppp-112-pm1.wiza Thu Nov 14 22:20:23 - still logged in
这个命令能显示用户的状态。该命令是建立在客户/服务模型之上的。用户通过客户端软件向服务器请求信息,然后解释这些信息,提供给用户。在服务器上需要运行fingerd程序,根据服务器的配置,能向客户提供某些信息。若考虑到保护这些个人信息,有可能许多服务器不提供这个服务,或者只提供一些无关的信息。
对于一个功能较完备的扫描器,它能对操作系统与服务程序存在的各种系统漏洞和Bug进行检测。为了实现该项功能,需要检查各个系统配置文件,例如,
/etc/passwd 口令文件
/etc/hosts 主机列表文件
/etc/networks *** 列表文件
/etc/protocols 协议列表文件
/etc/services 服务列表文件
/etc/hosts.equiv 主机信任列表文件
比较成熟的扫描器,如SATAN,Nessus,ISS等,都能对这些配置文件进行细致的检测,并给出完整的报告和建议。
*** 安全漏洞扫描器的应用
*** 安全扫描器简介
迅速发展的Internet给人们的生活、工作带来了巨大的方便,但同时,也带来了一些不容忽视的问题, *** 信息的安全保密问题就是其中之一。
*** 的开放性以及黑客的攻击是造成 *** 不安全的主要原因。科学家在设计Internet之初就缺乏对安全性的总体构想和设计,我们所用的TCP/IP 协议是建立在可信的环境之下,首先考虑的是 *** 互连,它是缺乏对安全方面的考虑的。而且TCP/IP协议是完全公开的,远程访问使许多攻击者无须到现场就能够得手,连接的主机基于互相信任的原则等等这一些性质使 *** 更加不安全。
先进的技术是实现 *** 信息安全的有力武器,这些技术包括:密码技术、身份验证技术、访问控制技术、安全内核技术、 *** 反病毒技术、信息泄漏防治技术、防火墙技术、 *** 安全漏洞扫描技术、入侵检测技术等。而在系统发生安全事故之前对其进行预防性检查,及时发现问题并予以解决不失为一种很好的办法,于是 *** 安全漏洞扫描技术应运而生。
1. 扫描器基本工作原理
扫描器是一种自动检测远程或本地主机安全脆弱点的程序,通过使用扫描器可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本,这就能让我们间接的或直观的了解到远程主机所存在的安全问题。
扫描器采用模拟攻击的形式对目标可能存在的已知安全漏洞进行逐项检查。目标可以是工作站、服务器、交换机、数据库应用等各种对象。然后根据扫描结果向系统管理员提供周密可靠的安全性分析报告,为提高 *** 安全整体水平产生重要依据。在 *** 安全体系的建设中,安全扫描工具花费低、效果好、见效快、与 *** 的运行相对对立、安装运行简单,可以大规模减少安全管理员的手工劳动,有利于保持全网安全政策的统一和稳定。
扫描器并不是一个直接的攻击 *** 漏洞的程序,它仅仅能帮助我们发现目标机的某些存在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。但它不会提供进入一个系统的详细步骤。
扫描器应该有三项功能:发现一个主机和 *** 的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现这些漏洞的能力。
扫描器对Internet安全很重要,因为它能揭示一个 *** 的脆弱点。在任何一个现有的平台上都有几百个熟知的安全脆弱点。在大多数情况下,这些脆弱点都是唯一的,仅影响一个 *** 服务。人工测试单台主机的脆弱点是一项极其繁琐的工作,而扫描程序能轻易的解决这些问题。扫描程序开发者利用可得到的常用攻击 *** 并把它们集成到整个扫描中,这样使用者就可以通过分析输出的结果发现系统的漏洞。
2.端口扫描介绍
真正的扫描器是TCP端口扫描器,这种程序可以选通TCP/IP端口和服务(比如,Telnet或FTP),并记录目标的回答。通过这种 *** ,可以搜集到关于目标主机的有用信息(比如,一个匿旬用户是否可以登录等等)。而其他所谓的扫描器仅仅是UNIX *** 应用程序,这些程序一般用于观察某一服务是否正在一台远程机器上正常工作,它们不是真正的扫描器,但也可以用于收集目标主机的信息(UNIX平台上通用的rusers和host命令就是这类程序的很好的例子)。
2.1 TCP SYN 扫描
扫描程序发送的SYN数据包,好像准备打开一个新的连接并等待反映一样。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST 返回表示端口没有处于侦听状态。如果收到一个SYN|ACK,扫描程序必须再发送一个RST 信号,来关闭这个连接过程。
优点:不会在目标计算机上留下纪录。
缺点:扫描程序必须要有root权限才能建立自己的SYN数据包。
2.2 TCP FIN 扫描
关闭的端口会用适当的RST来回复FIN数据包,而打开的端口会忽略对FIN数据包的回复。
优点:FIN数据包可以不惹任何麻烦的通过。
缺点:这种 *** 和系统的实现有一定的关系,有些系统不论是打开的或关闭的端口对FIN数据包都要给以回复,这种情况下该 *** 就不实用了。
2.3 TCP connect()扫描
操作系统提供connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。
优点:系统中的任何用户都有权利使用这个调用;如果对每个目标端口以线性的方式扫描,将会花费相当长的时间,但如果同时打开多个套接字,就能加速扫描。
缺点:很容易被发现,目标计算机的logs文件会显示一连串连接和连接出错的消息,并且能很快的将它关闭。
3.扫描程序介绍
目前存在的扫描器产品主要可分为基于主机的和基于 *** 的两种,前者主要关注软件所在主机上面的风险漏洞,而后者则是通过 *** 远程探测其它主机的安全风险漏洞。
国外,基于主机的产品主要有:AXENT公司的E *** ,ISS公司的System Scanner等,基于 *** 的产品包括ISS公司的Internet Scanner、AXENT公司的NetRecon、NAI公司的CyberCops Scanner、Cisco的NetSonar等。目前国内有中科院网威工作室开发的NetPower产品出现,另外北方计算机公司(***)也有类似产品。 下面介绍一些可以在Internet上免费获得的扫描程序。
3.1 NSS( *** 安全扫描器)
(1) NSS由Perl语言编成,它最根本的价值在于速度,它运行速度非常快,可以执行下列常规检查:
■Sendmail
■匿名FTP
■NFS出口
■TFTP
■Hosts.equiv
■Xhost
注:除非你拥有更高特权,否则NSS不允许你执行Hosts.equiv。
(2) 利用NSS,用户可以增加更强大的功能,其中包括:
■AppleTalk扫描
■Novell扫描
■LAN管理员扫描
■可扫描子网
(3) NSS执行的进程包括:
■取得指定域的列表或报告,该域原本不存在这类列表
■用Ping命令确定指定主机是否是活性的
■扫描目标主机的端口
■报告指定地址的漏洞
(4) 提示
在对NSS进行解压缩后,不能立即运行NSS,需要对它进行一些修改,必须设置一些环境变量,以适应你的机器配置。主要变量包括:
$TmpDir_NSS使用的临时目录
$YPX-ypx应用程序的目录
$PING_可执行的ping命令的目录
$XWININFO_xwininfo的目录
如果你隐藏了Perl include目录(目录中有Perl include文件),并且在PATH环境变量中没有包含该目录,需要加上这个目录;同时,用户应该注意NSS需要ftplib.pl库函数。NSS具有并行能力,可以在许多工作站之间进行分布式扫描。而且,它可以使进程分支。在资源有限的机器上运行NSS(或未经允许运行NSS)应该避免这种情况,在代码中有这方面的选项设置。
3.2 Strobe(超级优化TCP端口检测程序)
strobe是一个TCP端口扫描器,它可以记录指定机器的所有开放端口。strobe运行速度快(其作者声称在适中的时间内,便可扫描整个一个国家的机器)。
strobe的主要特点是,它能快速识别指定机器上正在运行什么服务。strobe的主要不足是这类信息是很有限的,一次strobe攻击充其量可以提供给"入侵者"一个粗略的指南,告诉什么服务可以被攻击。但是,strobe用扩展的行命令选项弥补了这个不足。比如,在用大量指定端口扫描主机时,你可以禁止所有重复的端口描述(仅打印首次端口定义)。其他选项包括:
■定义起始和终止端口
■定义在多长时间内接收不到端口或主机响应,便终止这次扫描。
■定义使用的socket号码
■定义strobe要捕捉的目标主机的文件
在获得strobe的同时,必然获得手册页面,这对于Solaris 2.3是一个明显的问题,为了防止发生问题,必须禁止使用getpeername()。在行命令中加入-g 标志就可以实现这一目的。同时,尽管strobe没有对远程主机进行广泛测试,但它留下的痕迹与早期的ISS一样明显,被strobe扫描过的主机会知道这一切(这非常象在/var/adm/messages文件中执行连接请求)。
3.3 SATAN(安全管理员的 *** 分析工具)
SATAN是为UNIX设计的,它主要是用C和Perl语言编写的(为了用户界面的友好性,还用了一些HTML技术)。它能在许多类UNIX平台上运行,有些根本不需要移植,而在其他平台上也只是略作移植。
在Linux上运行SATAN有一个特殊问题,应用于原系统的某些规则在Linus平台上会引起系统失效的致命缺陷;在tcp-scan模块中实现 select()调用也会产生问题;最后要说的是,如果用户扫描一个完整子网,则会引进反向fping爆炸,也即套接字(socket)缓冲溢出。但是,有一个站点不但包含了用于Linux的、改进的SATAN二进制代码,还包含了diff文件。SATAN用于扫描远程主机的许多已知的漏洞,其中包括但并不限于下列这些漏洞:
■FTPD脆弱性和可写的FTP目录
■NFS脆弱性
■NIS脆弱性
■RSH脆弱性
■Sendmail
■X服务器脆弱性
SATAN的安装和其他应用程序一样,每个平台上的SATAN目录可能略有不同,但一般都是/satan-1.1.1。安装的之一步(在阅读了使用文档说明后)是运行Perl程序reconfig。这个程序搜索各种不同的组成成分,并定义目录路径。如果它不能找到或定义一个浏览器。则运行失败,那些把浏览器安装在非标准目录中(并且没有在PATH中进行设置)的用户将不得不手工进行设置。同样,那些没有用DNS(未在自己机器上运行DNS)的用户也必须在/satan-1.1.1/conf/satan.cf中进行下列设置:$dont_use_nslookuo=1;在解决了全部路径问题后,用户可以在分布式系统上运行安装程序(IRIX或SunOS),我建议要非常仔细地观察编译,以找出错误。
SATAN比一般扫描器需要更多一些的资源,尤其是在内存和处理器功能方面要求更高一些。如果你在运行SATAN时速度很慢,可以尝试几种解决办法。最直接的办法就是扩大内存和提高处理器能力,但是,如果这种办法不行,我建议用下面两种 *** :一是尽可能地删除其他进程;二是把你一次扫描主机的数量限制在100台以下。最后说明的一点是,对于没有强大的视频支持或内存资源有限的主机,SATAN有一个行命令接口,这一点很重要。
3.4 Jakal
Jakal是一个秘密扫描器,也就是就,它可以扫描一个区域(在防火墙后面),而不留下任何痕迹。
秘密扫描器工作时会产生"半扫描"(half scans),它启动(但从不完成)与目标主机的SYN/ACK过程。从根本上讲,秘密扫描器绕过了防火墙,并且避开了端口扫描探测器,识别出在防火墙后面运行的是什么服务。(这里包括了像Courtney和GAbriel这样的精制扫描探测器)。
3.5 IdentTCPscan
IdentTCPscan是一个更加专业化的扫描器,其中加入了识别指定TCP端口进程的所有者的功能,也就是说,它能测定该进程的UID。
3.6 CONNECT
CONNECT是一个bin/sh程序,它的用途是扫描TFTP服务子网。
3.7 FSPScan
FSPScan用于扫描FSP服务顺。FSP代表文件服务协议,是非常类似于FTP的Internet协议。它提供匿名文件传输,并且据说具有 *** 过载保护功能(比如,FSP从来不分叉)。FSP最知名的安全特性可能就是它记录所有到来用户的主机名,这被认为优于FTP,因为FTP仅要求用户的E- mail地址(而实际上根本没有进行记录)。FSP相当流行,现在为Windows 和OS/2开发了GUI客户程序。
3.8 XSCAN
XSCAN扫描具有X服务器弱点的子网(或主机)。乍一看,这似乎并不太重要,毕竟其他多数扫描器都能做同样的工作。然而,XSCAN包括了一个增加的功能:如果它找到了一个脆弱的目标,它会立即加入记录。
XSCAN的其他优点还包括:可以一次扫描多台主机。这些主机可以在行命令中作为变量键入(并且你可以通过混合匹配同时指定主机和子网)。
4. 结束语
随着Internet的应用日渐普及, *** 攻击的种类和方式也愈来愈多,扫描程序不太可能集成所有的远程攻击。每发现一个新的漏洞,扫描程序就应该加入检查这个新漏洞的能力,这是一个永不停止的过程。因此扫描器最多提供一个快速观察TCP/IP安全性的工具,通过系统管理员的正确使用,能够避免一些入侵者的恶意攻击,但并不能保证 *** 的安全。
什么叫做 *** 扫描
1、 *** 扫描的原理就是通过对待扫描的 *** 主机发送特定的数据包,根据返回的数据包来判断待扫描的系统的端口及相关的服务有没有开启。无论 *** 扫描的目的是什么,其作用都是为了发现待扫描系统潜在的漏洞。
2、顾名思义,能够通过 *** 进行扫描工作的扫描仪器,这个需要添加 *** 协议,才能实现 *** 共享扫描.
0条大神的评论