漏洞扫描原理及工具
1.扫描原理
ping检测:
通过ping返回的TTL值大致的了解一些信息
128:xp、2000、2003
64:7、2008、Linux
255:交换机、路由器等
此方法式只能大致判断,并不准确。
端口扫描
telnet IP 端口
由此可判断操作系统、软件服务类型、版本等
如:目标系统开放了137、139、445,端口可以判断目标系统为Windows系统
目标系统开放了22这样的端口很可能为Linux系统
os探测:
弱口令探测
漏洞评估
2.扫描分类:
开放扫描:TCP全连接,反向ident扫描
半开放扫描:SYN扫描、IP头信息dumb扫描
隐蔽扫描:FIN扫描、ACK扫描、null扫描、XMAS扫描、TCP分段、SYN\ACK扫描
扫射扫描:ping udp ack syn icmp
其他扫描:ftp udp\icmp不可达 IP头信息dumb扫描等
3.TCP扫描
一、TCP普通扫描方式
对于TCP扫描普通常采用以下方法:
TCP ACK扫描:这种扫描技术往往用来探测防火墙的类型,根据ACK位的设置情况确定该防火墙是简单的包过滤还是状态检侧机制的防火墙。’
TCP窗口扫描:由于TCP.窗口大小报告方式不规则,所以这种扫描方法可以检测一些类似UNIX系统[AIX, FreeBSD等]打开的端口,以及是否过滤的端口.
TCP RPC扫描:这种方式是UNIX_系统特有的,用于检测和定位远程过程调用[RPC]端口一及其相关程序与版本标号。
二、TCP扫描的高级扫描方式
修改TCP数据包中各标志位、就能得到TCP扫描的高级扫描方式,方法及原理如下:
1、TCP connect扫描
这种类型是最传统的扫描技术,程序调用connect()接口函数连接到目标端口,形成一次完整的TCP“三次握手”过程,显然能连接上的目标端口就是开放的瑞口.
(注意:在UNIX系统下使用TCP connect扫描方式不需要任何权限。)
2、TCP SYN 扫描
这种类型也称为半开放式扫描。其原理是往目标端目发送一个SYN包,若得到来自目标瑞口返回的SYN/ACK响应包.则目标端口开放:若得到RST则未开放。(注意:在UNIX下执行TCP SYN扫描必须拥有ROOT权限.)由于此类型并未建立完整的TCP“三次握手”过程,很少会有操作系统记录到,因此比起TCP connect扫描隐蔽得多。虽然此类型扫描隐蔽,但是有些防火墙监视TCP SYN扫描,有些工具(如synlogger和.Courtney)也能够检测到它。原因是:这种秘密扫描方式违反通例,在网络流量中相当醒目.
3. TGP FIN扫描
TCP FIN扫描的原理是:RFC793文档程序向一个端口发送FIN,若端口开放则此包被忽略,否则返回RST。这个是某些操作系统TCP实现存在的BUG,并不是所有的操作系统都存在这个BUG,它的准确率不高,而且此方法往往只能在UNIX系统上成功工作,因此这种扫描方法不是特别流行。它的好处在于足够隐蔽,.如果判断在使用TCP SYN扫描时可能暴露自身则可以试一试这种方法。
4. TCP reverse ident扫描
ident协议允许通过TCP连接得到进程所有者的用户名,即使该进程不是连接发起方.此方法用于得到FTP所有者信息,以及其他需要的信息等。
TCP Xmas Tree扫描
该程序往目标端口发送一个FIN、URG和PUSH包。.若其关闭.应该返回一个RST包.TCP NULL扫描
该程序发送一个没有任何标志位的TCP包,关闭的端口将返回一个RST数据包。
3.UDP扫描方式和其他扫描方式
对于UDP端口的扫描,通常采用以下方法:
- UDP ICMP端口不可达扫描
此方法是利用UDP本身是无连接的协议,所以一个打开的UDP端口并不会返回任何响应包.如果端口关闭,某些系统将返回ICMP_PORT UNREACH信息.由于UDP是不可靠的非面向连接协议,所以这种扫描方法容易出错,还比较慢。
2.UDP recvfrom() 和write()扫描
由于UNIX系统下非ROOT用户无法读到端口不可达信息,所以NMAP提供这个仅Linux下才有效的方式。在Linux下,若一个UDP端口关闭,则第二次write()操作会失败。当调用recvfrom()
时.若未收到ICMP的错误信息.一个非阻塞的UDP套接字一般返回EAGAIN(“Try Again” ,crror=13 );如果昨到ICMP的错误信息,套接字返回ECONNREFUSED(“Conncctionrefused”,error=111).通过这种方式,NMAP将得知目标端口是否打开。
3.其他扫描方式
除典型的TCP和UDP扫描方式外,还有一些另类的扫描方式:
分片扫描;
FTP跳转扫描。
4.扫描前的注意事项
了解网络部署情况
确定是否可以扫描,是否需要扫描,对扫描器部署
扫描时间和方式
挑用户少的时候
定制好扫描策略
对扫描器配置
防火墙是否开启
企业服务是否配置了相关的安全策略,防止锁死
例如一个数据库设置密码错误三次就不再允许访问,弱口令暴力破解等注意使用
2.X-Scan
介绍:
X-Scan是国内最著名的综合扫描器之一,它完全免费,是不需要安装的绿色软件、界面支持中文和英文两种语言、包括图形界面和命令行方式。主要由国内著名的民间黑客组织“安全焦点”完成.
X-Scan把扫描报告和安全焦点网站相连接,对扫描到的每个漏洞进行“风险等级”评估,并提供漏洞描述、漏洞溢出程序,方便网管测试、修补漏洞。
X-Scan扫描器采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,xscan软件还支持插件功能,提供了图形界面和命令行两种操作方式,
扫描内容包括:远程操作系统类型及版本,标准端口状态及端口BANNER信息,CGI漏洞,IIS漏洞,RPC漏洞,SQL-SERVER、FTP-SERVER、SMTP-SERVER、POP3-SERVER、NT-SERVER弱口令用户,NT服务器NETBIOS信息等。扫描结果保存在/log/目录中,index_*.htm为扫描结果索引文件。
安装:
纯绿色软件,无需安装
第一次使用时会提示缺少npptools文件,在网上下载后解压放入软件目录即可。
使用:
可以扫描单个地址和地址段,也可以将所有地址写在记事本导入即可
扫描模块设置
跳过没响应主机速度快
无条件扫描速度慢
其他设置按自己需求选择
此扫描器扫描弱口令比较好
部分端口可能对应的应用或服务
3306
数据库
8080
apache
139
SQLserver
445
共享smb
80
web端口
。。。。。。
3. appscan
介绍
appscan是IBM公司开发的用于扫描web应用的基础架构,也是安全渗透行业扛把子之一;
安装:
需要的坏境:
Win7+Microsoft .NET Framework 4.5 +AppScan
http://www.ibm.com/developerworks/cn/downloads/r/appscan/
安装步骤:
关闭打开的任何office 应用程序
启动appscan安装程序
按照安装向导完成安装
许可证:
把补丁拖出,替换在安装目录下的此dll文件
打开ASL 右上角在许可证中管理导入许可证AppScanstandard.txt
安装可能出现的问题:
应用程序不能自动安装所需要的两个环境一个是.net框架 一个是VC++2017,选择手动安装即可
使用
新建
选择模板:根据扫描要求,选择不同的扫描模板
选择扫描类型:存在web应用程序和web services两种(一般使用web应用程序即可)
起始url的填写
选择登录方法:根据提示填入即可
测试策略:默认、缺省策略即可
测试优化: 正常即可
完成配置向导
提前保存扫描文件
开始扫描
注意:
工作量大时容易崩溃
可以自动保存扫描结果,崩溃后可导入继续扫描
缺点:文件能耗大,扫描速度较慢
优点:漏洞验证较为人性化
4.AWVS (Acunetix Web Vulnerability Scanner)
介绍:
这是一款商业级的Web 漏洞扫描程序,它可以检查Web 应用程序中的漏洞,如SQL 注入、跨站脚 本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面,并且能够创建专 业级的Web 站点安全审核报告。
安装:
官方网站下载安装包
http://www.acunetix.com/vulnerability-scanner/download/
安装中可能存在的问题
无法显示界面
补丁失败或服务没启动,按Windows+R键输入services.msc打开服务界面查看Acunetix服务是否开启,一般是两个服务,Acunetix和database
空白界面
浏览器版本不行,更换一个浏览器试试
TLL服务没开启
INTERNET选项中开启
补丁运行失败
补丁文件要用管理员权限打开
使用
五个功能模块
WebSite Scan
菜单:File>>New>>Web Site Scan
Scan type
Scan single website
在 Website URL 处填入需要扫描的网址,如果是扫描一个单独的应用程序,则可以填入程序的完整路径。
Scan using saved crawling results
导入 WVS 内置 site crawler tool 的爬行结果,然后进行漏洞扫描。
Access the scheduler interface
如果需要扫描的网站构成了一个列表,那么可以使用 Scheduler 功能完成任务。Options
Scanning options
Scan settings:扫描选项的高级设置。
Scanning profile:对单一漏洞,采取针对性的扫描,如 XSS、SQL注入等;
Crawling options
定义爬行起点。
爬行完成后,如何操作(可用于选择想要扫描的文件)。
Target
有些时候 WVS 无法判定服务器所使用的脚本语言,需要手动指定。
Login
开始扫描Tools
- Site Crawler
指定爬行网址和登录会话。 - Target Finder
查询某网段,开放指定端口的服务器。 - Subdomain Scanner
可设定 DNS 服务和 DNS 超时时间,如果存在区域传输,可进行深入挖掘。 - Blind SQL Injector
通过这个模块可以检测出SQL注入页面
5)HTTP Editor
通过HTTP Editor可以对HTTP请求的数据进行编辑 - HTTP Sniffer
WVS 提供的 HTTP/HTTPS 代理功能。 - HTTP Fuzzer
某种程度上,类似 Burp 的 Intruder 功能。 - Authentication Tester
- Compare
比较两次扫描结果的异同。
- Web Services
- Web Services Scanner
可用于审计 WSDL 接口。 - Web Services Editor
- Configuration
Application Settings 应用程序设置
Scan Settings 扫描设置
Scanning Profiles 配置所用扫描脚本
General
优劣:
功能灵活强大,支持多种目标,大量计算机的同时扫描;
流行,由于其具有强大的扫描机探测功能,,已被成千上万安全专家使用。
英文界面,使用较难
可以加入chorme插件实现即时翻译
5. HP WebInspect
介绍:
惠普公司的安全扫描产品,这是一款强大的Web 应用程序扫描程序。SPI Dynamics 的这款应用程序安全评估工具有助于确 认Web 应用中已知的和未知的漏洞。它还可以检查一个Web 服务器是否正确配置,并会尝试一些 常见的Web 攻击,如参数注入、跨站脚本、目录遍历攻击(directory traversal)等等。
安装:
HP WebInspect10.30 是一款文件大,系统资源占用更大的扫描软件,在安装后开机会自动启动种类繁多的服务和进程,尽量将 WebInspect 安装在单独的虚拟机,分配内存 3GB 以上;确保操作系统 Windows 7 及以上;并确保支持.Net Framework 4.5.x 和 SQL Server 2012;开启前还需运行 services.msc 工具检查 SQL和 WebInspect 系列服务是否全部正确启动以防扫描时出现致命错误中断;10.30版本的下载和升级可能需要 VPN。
注意:分为需要登录检测和无需登录检测
new
点 Create a Standard Web Site Scan 开始一个标准的网站扫描的设置
此时会弹出教程界面,点击关闭或仔细查阅
此教程界面可随时由右上角 Tutorial 按钮调出,如下图
在开始 URL 中输入站点路径,点击 Verify 确认可用性
页面显示出来后,点 Next
Policy 是设定用 OWASP Top 10 风险方式检查还是仅仅检查 SQL 注入或者只是快速扫描一下的。
而 Crawl Coverage 设定爬虫深度,越往上速度越慢,爬到页面越多。
设置之后点藏在左上角的 Next
对于需要登陆后进行检查的页面点击 Create 创建登录宏
在登录记录进程正常启动后,上方标志会从 Record 变成 Stop;然后找到网页上正常登录的地方,此处是 Signin
在右侧网页上输入用户名、密码,点击登录;
WebInspect 会自动记录登录信息和页面跳转,在发现成功登录后,会要求点击上方Play 按钮演示一遍记录到的登录操作
点击上方 Play 按钮,看着 WebInspect 跑完一遍
在询问是否正常登录时根据实际情况点 Yes 或 No
为了自动检测而不是每次询问,WebInspect 还会要求指定一个参数来验证是否成功登录,此处点击 username,告诉 WebInspect,当出现 username 时就是成功的登录。
等待 WebInspect 再跑一遍,直到出现 Did the macro play correctly?询问宏是否在发现了刚才指定的 username 后确实就代表正确登录了。
如果是,点击 Yes,WebInspect 进入检测退出登录条件模式。
检测到退出登录条件后,提示宏记录完成,在左上角点 Save 保存宏。
保存为指定路径和默认格式后
再点 Play
默认扫描类型为标准扫描:爬虫并审计
与APPscan的区别
APPscan是先爬取后扫描
webinspect是一边爬取一边检测
进行攻击的时候会对攻击代码进行一些变异
6. Netsparker
介绍:
Netsparker是一款综合型的web应用安全漏洞扫描工具,它分为专业版和免费版,免费版的功能也比较强大。Netsparker与其他综合性的web应用安全扫描工具相比的一个特点是它能够更好的检测SQL Injection和 Cross-site Scripting类型的安全漏洞。
安装:
无需安装,直接使用
使用:
new输入域名
start开始配置或直接开始,高级配置一共九步
输出结果
红橙黄 漏洞三个级别
也支持登陆扫描From
客户端证书
网页密码
主机密码
XSS SQL注入 文件上传功能比较强
7. WVSS 绿盟web应用漏洞扫描系统
好用,但是只有收费版
使用:
新建任务
模板根据自己的需要选择
web认证
需要登陆扫描时选择
插件模板(很多)
比较特别的是web系统组件漏洞,很大一部分扫描软件没法测中间件漏洞
分布式管理
扫默任务发配到不同的扫描引擎
优劣:
扫描速度快
爬行能力强
综合能力强
发送的攻击代码都是国际标准,没有弹窗,
没有内置浏览器,要自己去验证是否可以进行利用
有一定的误报率
需要一定基础看懂数据包,对新手不友好
8.安恒明鉴
操作简单
报告功能强大
9.Nessus
介绍:
Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。
安装:
Nessus 官方下载地址:
http://www.tenable.com/products/nessus/select-your-operating-system#tos
安装过程很简单,一直点击“下一步”即可)
在使用 Nessus 前,首先要从官网申请一个可用的激活码。
http://www.tenable.com/products/nessus/nessus-homefeed
邮箱要正确填写激活码会发送到邮箱
Nessus 安装完成后,WEB 接口的端口默认是 8834
点击plugins,选择合适的系统插件,搜索denial,列出所有的拒绝服务检测插件,点击enabled,禁止nessus启动这些插件,因为这些插件在扫描时可能会造成目标系统宕机
一般系统层面上,出现一个高危漏洞,就意味着系统权限到手
使用
新扫描策略创建
policies
一般使用advanced scan
创建设置之后会需要重新登陆
10. nexpose
介绍:
工具类别:漏洞扫描程序
什么是Nexpose?
由管理Metasploit(Rapid7)的人员制作的这个工具是一个漏洞扫描程序,旨在支持整个漏洞管理生命周期,包括发现,检测,验证,风险分类,影响分析,报告和网络中操作系统的缓解。该工具与Rapid7的Metasploit集成,用于漏洞利用。此工具作为独立软件,设备,虚拟机或托管服务或私有云部署出售。
是免费的吗?
Nexpose的商业版本每年只有2000美元,而且还有一个免费但有限制的版本。
Nexpose是否适用于所有操作系统?
适用于MicrosoftWindows和Linux操作系统。
Nexpose的典型用途是什么?
Nexpose用于收集新数据,通过实时监控,您可以在几小时内解决问题。通过使用此工具,您可以将数据转换为详细的可视化,以便您可以集中资源并轻松地合规性,安全性和C-Suite共享每个操作。
安装:
下载:
https://download2.rapid.com/download/NeXpose-v4/NexposeVA.ova
在虚拟机中打开,然后部署
要求内存很大 8G左右
安装
在虚拟机登陆系统 密码是nexpose
/etx/network/interface 配置网络(默认DHCP)
设置一个静态IP地址
address IP地址
192.168.1.10
netmask 子网掩码
255.255.255.0
network 网段
192.168.1.10
broadcast广播地址
192.168.1.255
gateway网关
192.168.1.2
dns-nameserver DNS
192.168.1.2
/etc/init.d/networking.restart
重启网卡
hettps://ip addr: 3780
输入账号 nxadmin密码 nxpassword
使用
需要导入key
创建
添加资产
设置认证(用于登录扫描,也可以登录到操作系统里进行扫描)
扫描模板 一般用full
引擎(可以分布式)
设置警报
计划
保存并扫描
注意:
区别于其他几个扫描器的点在于可以进入到操作系统里去扫描
提供了自带的MSF认证,提供了msf攻击测试的一些方法,对新手很友好
生成的报告不是很好
11. 启明天镜BS版本
介绍
与绿盟的WVSS是国内很少的web与系统都可以扫的扫描器
还带配置核查扫描
试用免费三个月(只支持50个ip地址)
可以通过修改虚拟机时间或者重置虚拟机无限使用
安装:
傻瓜式安装;
用户名venus密码venus/venustech60
使用:
傻瓜式
12. RSAS
绿盟远程安全评估系统
详细见:绿盟远程安全评估系统(漏洞管理系列) 用户手册
13.漏洞扫描器评估
功能测试
漏报测试
用DVWA搭建一个环境进行测试
漏洞误报测试
需要人工验证
页面发现测试
管理功能测试
任务计划
图表
漏洞修复建议描述信息
提交数据包返回数据包
漏洞验证等
性能测试
扫描速度
平均速率
拿五个站点进行扫描
最大速率测试
可靠性测试
断电恢复测试
APPSCAN最好,边存边扫
断电续扫测试
测试结论:
国内:
杭州安恒
漏洞扫描和事件监测是单一产品实现。漏洞扫描速度较慢;发现漏洞类型较多,结果准确。
漏洞验证功能较好。综合展示界面直观;报表功能完整,支持任务结果多角度对比。支持开放接口。
漏洞验证提供了快速验证,测试等功能,可查看请求响应代码,方便技术人员确认漏洞。但无法批量验证。知道创宇
漏洞扫描和事件监测是单一产品实现。漏洞扫描速度很快;发现漏洞类型关注高中风险,结果准确;能识别网站防护设备。
支持漏洞验证。综合展示界面直观,有专用于展示的界面;报表功能完整;支持开放接口。绿盟科技
漏洞扫描和事件监测是两套产品实现。漏洞扫描速度较快;发现漏洞类型较多;结果准确。
支持漏洞验证,支持批量验证。综合展示界面一般。报表功能较为完整,以任务为单位。支持开放接口。能很好扫描中间件漏洞的仅此一家
4.国外:
web扫描器:
AWVS
漏洞扫描速度较快,准确率较高,漏洞规则库较为全面。漏洞验证可查看请求响应代码,但无中文界面。报表功能完整。有多重漏洞的验证工具APPSCAN
漏洞扫描速度一般,准确率最高,漏洞规则库最全面。漏洞验证可查看请求相应代码,拥有较完整的漏洞修复建议。报表功能完整。全中文界面
3.hp webinspect
漏洞扫描速度一般,准确率较高,扫描类型较多。报表功能强大。可查看请求响应代码。无中文界面。
- webcruiser
此工具偏向渗透利用工具,扫描功能较弱仅有轻量级SQL注入和XSS漏洞的扫描 功能。, 具有SQL注入漏洞利用功能。
系统扫描器
nessus
扫描速度快,能扫描系统层和web层类漏洞,但web漏洞发现能力不如appscan,系统扫描能力不如Nessusnamp
主要用于系统层扫描,扫描速度快,准确率高,漏洞规则库全面,报表功能强大。nexpose
主要用于端口扫描和主机发现,不能实现web扫描和系统层扫描对渗透测试起帮助作用。