漏洞扫描工具艾勇单月光漏洞——任何可能会给系统和网络安全带来隐患的因素任何系统和网络都有漏洞漏洞分类:(1)系统或应用本身存在的漏洞(2)配置不当所造成的漏洞漏洞扫描是一种基于网络远程检测目标网络或本地主机安全性脆弱点的技术。通常也是指基于漏洞数据库,通过扫描等手段,对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用的漏洞的漏洞的一种安全检测(渗透攻击)行为。漏洞扫描工具就是利用漏洞并对漏洞进行操作。主要内容端口扫描器—Nmap、Nwatch—检测对方服务器的开放端口,侦测对方服务器服务漏洞扫描器—X-scan、nessus、流光—检查系统漏洞、配置错误Web应用扫描—Nikto、appscan、webinspect—检查Web应用数据提交、信息泄露等问题NmapNmap简介Nmap的获取和安装Nmap的功能和用法Nmap使用示例NmapFE——Nmap的GUI界面基于Windows的NmapNmap优缺点Nmap介绍•Nmap是一个网络探测和漏洞扫描程序•安全管理人员可以使用Nmap软件对系统和网络进行扫描,获取网络中正在运行的主机以及主机提供的服务等信息•Nmap通过向对方服务器的特定端口发送数据包,根据应答来判断端口漏洞Nmap的下载和安装•官方网站免费下载•Linux下安装#rpm–ivhnmap-x.xx.i386.rpmNmap的功能和用法•Nmap的语法:nmap[scanTypy(s)][Option]{targetspecification}–“ScanType(s)”用于指定扫描类型,–“Options”用于指定选项,–“targetspecification”用于指定扫描目标Nmap的功能和用法—扫描类型参数•-sT指定Nmap进行TCPconnect()扫描•-sS指定Nmap进行TCPSYN扫描•-sF、-sX、-sN指定Nmap进行FIN、Xmas和Null扫描•-sP指定Nmap进行Ping扫描•-sU指定Nmap进行UDP扫描•-sA指定Nmap进行TCPACK扫描•-sW指定Nmap对滑动窗口进行扫描•-sR指定Nmap进行RPC扫描•-b指定Nmap进行FTP反弹攻击Nmap的功能和用法—选项参数•-P0指定Nmap在扫描之前,不必Ping目标主机•-PT指定Nmap在扫描之前,使用TCP确定哪些主机正在运行•-PS指定Nmap使用TCPSYN对目标主机进行扫描•-PI指定Nmap使用真正的Ping来扫描目标主机是否正在运行,同时还可以对直接子网广播地址进行观察•-PB指定Nmap使用TCPACK和ICMPecho请求两种扫描类型并行扫描•-O指定Nmap对TCP/IP指纹特征的扫描Nmap的功能和用法—扫描目标参数•扫描目标参数是必须给出的•可以是单一主机,也可以是一个子网–128.210.*.*–128.210.0-255.0-255–128.210.0.0/16Nmap使用•使用Nmap扫描指定网络中正在运行的主机–例1:使用Nmap的Ping扫描技术探测网络192.168.2.123中正在运行的主机#nmap–sP192.168.2.123–例2:使用TCPACK技术来探测IP地址范围在192.168.2.100至192.168.2.200中正在运行的主机#nmap–sP–PT80192.168.2.100-200Nmap使用使用Nmap扫描目标主机上开放的TCP端口例1:使用Nmap的TCPconnect()扫描技术扫描IP地址为192.168.2.195的主机上1~1024之间开放的TCP端口,并显示详细的信息#nmap–v–sT–p1-1024192.168.2.195例2:使用Nmap的TCPSYN扫描技术扫描IP地址为192.168.2.195的主机上开放的TCP端口,并显示详细的信息#nmap–v–sS192.168.2.195使用Nmap扫描UDP端口例:使用Nmap扫描IP地址为192.168.2.195的主机上开放的UDP端口#nmap–v–sU192.168.2.195基于Windows的Nmap•基于Windows的Nmap的参数及用法与基于Linux的Nmap完全相同•Nmap在Windows平台上运行时,需要用到WinPcap程序支持运行Nmap对指定地址扫描•对地址192.168.2.122扫描Nmap对指定地址扫描•地址192.168.2.122的端口扫描结果Nmap对指定地址扫描•地址为192.168.2.122的主机信息Nmap优缺点•优点:Nmap作为主动式端口扫描工具,只要在对方没有把通信阻断的情况下,可以在较短的时间内获得结果•缺点(1)现在带有阻断功能的防火墙越来越多,有些防火墙当检测到端口扫描时,会将端口关闭一定的时间,还有的机器使用了很多filter功能,只对特定的IP地址提供服务,这种情况下,主动式的正确性大打折扣。(2)主动式只是在一瞬间对端口进行扫描,只有当服务器那个时候使用的服务才有可能被侦测到。(3)端口扫描是一种广义上的攻击行为,对于末经许可的机器,一般不能施行。X-Scan•X-Scan简介•X-Scan的用法•X-Scan扫描示例X-Scan简介•X-Scan是由安全焦点开发的完全免费的漏洞扫描软件,采用多线程方式对指定IP地址或IP地址范围进行漏洞扫描•扫描内容包括:–远程服务类型–操作系统类型及版本–各种弱口令漏洞–后门–应用服务漏洞–网络设备漏洞–拒绝服务漏洞等二十几个大类X-Scan的用法•X-Scan的界面X-Scan的用法•X-Scan的扫描参数界面X-Scan的用法•X-Scan的扫描参数界面X-Scan扫描示例—localhost扫描•对localhost的扫描(普通信息)X-Scan扫描示例—localhost扫描•对localhost的扫描(漏洞信息)X-Scan扫描示例—指定地址段扫描•对指定地址段(192.168.2.1-255)的扫描(普通信息)X-Scan扫描示例—指定地址段扫描•对指定地址段(192.168.2.1-255)的扫描(漏洞信息)X-Scan扫描示例—指定地址段扫描•地址192.168.2.116的开放服务和漏洞检查脚本显示X-Scan扫描示例—指定地址段扫描•地址192.168.2.116漏洞检测脚本下的445/tcp端口X-Scan扫描示例—漏洞示例•漏洞示例–NT-Server弱口令漏洞•如果目标主机的用户账户存在很容易被猜测出来的弱口令,则X-Scan将能够扫描出来并标识为高风险级别的“漏洞”X-Scan扫描示例—漏洞示例(续)•漏洞示例–“冲击波”漏洞•通过X-Scan可以扫描出目标主机所存在的“冲击波”蠕虫病毒所利用的漏洞(MS03-026/KB823980)X-Scan扫描示例—扫描报告•扫描报告X-Scan扫描示例—检测报告•对指定地址段扫描的检测报告Nikto•Nikto简介•Nikto运行•Nikto各参数项作用•Nikto应用Nikto简介•Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs;超过625种服务器版本;超过230种特定服务器问题,包括多种有潜在危险的文件、CGI及其他问题,它可以扫描指定主机的WEB类型、主机名、特定目录、COOKIE、特定CGI漏洞、返回主机允许的http模式等等。扫描项和插件可以自动更新(如果需要)。基于Whisker/libwhisker完成其底层功能(Libwhisker是一个Perla模块,适合于HTTP测试。它可以针对许多已知的安全漏洞,测试HTTP服务器,特别是检测危险CGI的存在。Whisker是一个使用libwhisker的扫描程序)。•Nikto最新版本为2.1.1版,官方下载网站:简介(续)•到Nikto官方网站上下载最新版本nikto-current.tar.gz,此为Linux下的压缩格式,在Windows下用WinRar解压即可,解压后的文件有:nikto.conf、docs、nikto.pl、plugins、templates。如下图所示:Nikto运行•将解压后的Nikto文件夹放到C盘根目录下。•下载ActivePerl的最新版本ActivePerl-5.10.1.1007-MSWin32-x86-291969.msi,双击安装即可,如下图所示:•点击“开始”-“运行”,输入CMD,输入cd\nikto进入Nikto文件夹,在这个文件夹中可以运行Nikto,它的一般格式为:nikto.pl-h目标主机-其它参数。•参数说明•在CMD下输入:nikto.pl–H•显示Nikto和帮助信息。Nikto各参数项作用•在Nikto中部分参数使用全称或参数的第一个字母均可,如-config和-c是等同的,在下面各项中,使用此写法:-c(config)的均表示此项参数用参数项全称或首字母均可。•-c(config):使用指定的config文件来替代安装在本地的nikto.conf文件。•-C(Cgidirs):扫描包含指定内容的CGI目录。所包含的内容在-C后面指定。如-C/cgi/。•-D(Display):打开或关闭默认输出。输出选项:1显示重定向2显示获取的cookies信息3显示所有200/OK的回应4显示请求认证的URLsDDebug输出•V冗余输出•-dbcheck:检查数据库和其它重要文件的句法错误。•-e(evasion):使用LibWhisker中对IDS的躲避技术,可使用以下几种类型:1随机URL编码(非UTF-8方式)2自选择路径(/./)3过早结束的URL4优先考虑长随机字符串5参数欺骗6使用TAB作为命令的分隔符7使用变化的URLNikto各参数项作用(续)•-f(findonly):只寻找HTTP或HTTPS端口,不进行完全扫描。•-F(Format):指定检测报告输出文件的格式,默认是txt文件格式(可以是htm、csv、txt或xml格式)•-h(host):指定目标主机,可以是IP或域名。•-H(Help):显示帮助信息。•-i(id):用于主机鉴定,其格式为:userid:password•-m(mutate):猜解更多的文件名:•1检测根目录下的所有文件•2猜测密码文件名•3通过Apache(/~user请求类型)枚举用户名•4通过cgiwrap(/cgi-bin/cgiwrap/~user请求类型)枚举用户名•-n(nolookup):不执行主机名查找。•-o(output):输出到指定文件•-p(port):指定使用的端口,默认为80。•-P(Pause):各项操作之间的延时时间。•-r(root):对所有请求优先考虑root的值,格式为:/目录名•-s(ssl):强制在端口上使用ssl模式•-S(Single):实行对单个目标的请求模式。•-t(timeout):超时时间,默认为2秒。Nikto应用(1)检测目标主机。输入如下命令:nikto.pl-h•得到的结果如下图所示:可以看到目标主机和服务器版本、根目录下的robots.txt文档信息、CGI目录信息,所允许的HTTP方法选项,文件头信息等。Nikto应用(2)使用-p参数指定要扫描的端口,可以指定某一个端口,如-p443,可以指定一个端口范围,如-p80-443,也可指定多个不连续端口,如下图所示:Nikto应用•③、如果运行Nikto的主机是通过HTTPproxy来访问互联网的,则可以使用代理来扫描,使用选项-u,如:nikto.pl-h•④、检测目标主机,并将结果保到txt文件中:nikto.pl-h–ooutput.txt•结果