网络知识 娱乐 渗透测试工具——漏洞扫描工具

渗透测试工具——漏洞扫描工具

安全漏洞产生的原因

技术原因

  • 软件系统复杂性提高,质量难于控制,安全性降低
  • 公用模块的使用引发了安全问题

经济原因

  • “柠檬市场”效应——安全功能是最容易删减的部分

环境原因

  • 从传统的封闭、静态和可控变为开放、动态和难控
  • 攻易守难

安全缺陷

  • 安全性缺陷是信息系统或产品自身“与生俱来”的特征,是其“固有成分”

安全漏洞是与生俱来的

系统设计缺陷

  • Internet从设计时就缺乏安全的总体架构和设计
  • TCP/IP中的三阶段握手.

软件源代码的急剧膨胀

  • Windows 95 1500万行,Windows 98 1800万行
  • Windows XP 3500万行,Windows Vista 5000万行
  • Windows 7 5000万至 7000万
  • Linux 内核200万行

软件实现的缺陷
微软开发人员的单体测试缺陷从超过25个缺陷/千行代码显著降低到7个缺陷/千行代码

安全漏洞的生命周期

 在安全漏洞生命周期内,从安全漏洞被发现到厂商发布补丁程序用于修补该漏洞之前,安全社区普遍称为“0day

  1. 安全漏洞研究与挖掘:由高技术水平的黑客与渗透测试师开展,主要利用源代码审计(白盒测试)、逆向工程 (灰盒测试)、Fuzz测试(黑盒测试)等方法,挖掘出目标系统中存在的可被利用的安全漏洞。
  2. 渗透代码开发与测试:在安全漏洞挖掘的同时,黑客们会开发概念验证性的渗透攻击代码(POC) ,用于验证找到的安全漏洞是否确实存在,并确认其是否可被利用。
  3. 安全漏洞和渗透代码限于封闭团队:在发现安全漏洞并给出渗透攻击代码后,“白帽子” 采用的处理策略是首先通知厂商进行修补,而在厂商给出补丁后再进行公布;而“黑帽子”一般在封闭小规模团队中进行秘密地共享,以充分利用这些安全漏洞和渗透攻击代码所带来的攻击价值。
  4. 安全漏洞和渗透代码开始扩散:由于各种原因,在封闭团队中秘密共享的安全漏洞和渗透代码最终会被披露出来,在互联网上得以公布,“黑帽子”会快速对其进行掌握和应用,并在安全社区中开始快速扩散。
  5. 恶意程序出现并开始传播: " 黑帽子”们将在掌握安全漏洞和渗透代码基础上,进一步开发更易使用、更具自动化传播能力的恶意程序,并通过黑客社区组织结构和互联网进行传播。在此过程中,厂商完成补丁程序开发和测试,并进行发布。
  6. 恶意程序大规模传播并危害互联网:厂商发布补丁程序和安全预警将更进一步的让整个黑客社区了解出现新的安全漏洞和相应的渗透代码、恶意程序,更多的“黑帽子”们将从互联网或社区关系网获得并使用这些恶意程序,对互联网的危害也达到顶峰。
  7. 渗透攻击代码、攻击工具、恶意程序逐渐消亡:在厂商补丁程序、安全公司提供的检测和移除机制得到广泛应用后,相应的渗透代码、恶意程序将被“黑帽子”们逐渐抛弃,从而慢慢的消亡。

CVE

公共漏洞和暴露
特点:

  • 为每个漏洞和暴露确定了唯一-的名称 .
  • 给每个漏洞和暴露一个标准化的描述
  • 不是一一个数据库,而是- -个字典
  • 任何完全迥异的漏洞库都可以用同一个语言表述,可以使得安全事件报告更好地被理解,实现更好的协同工作
  • 可以成为评价相应工具和数据库的基准
  • 非常容易从互联网查询和下载
  • 通过"CVE编辑部”体现业界的认可

 CVSS

通用漏洞评分系统 :

  • 一个行业公开标准,其被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度。利用该标准,可以对弱点进行评分,进而帮助我们判断修复不同弱点的优先等级。
  • CVSS是安全内容自动化协议 (SCAP) 的一部分,通常CVSS同CVE一同由美国国家漏洞库(NVD) 发布,由美国国家基础建设咨询委员会(NIAC) 委托制作,是一套公开的评测标准,经常被用来评比企业资讯科技系统的安全性,并受到eBay、Symantec、Cisco、 Oracle等众多厂商支援。

CVSS得分:最大为10,最小为0

  • 得分7~10的漏洞通常被认为比较严重
  • 得分在4~6.9之间的是中级漏洞
  • 0~ 3.9的则是低级漏洞

CVSS包含的要素

  • 基本评估指标:代表长期存在的本质的、基本的脆弱性,这种脆弱性不会随时间和用户环境改变。
  • 时效性评估指标:随时间改变但不随用户环境改变的脆弱性。
  • 环境评估指标:代表和用户环境直接相关的脆弱性。

 漏洞与补丁

安装补丁是漏洞消减的技术手段之一

  • 及时安装有效补丁可避免约95%的信息安全损失
  • 专门用于修复漏洞的软件补丁一般称为安全补 丁

补丁安装中需要注意的问题

  • 可靠来源
  • 补丁测试
  • 备份及应急措施

虚拟补丁

  • 虚拟补丁技术是通过控制所保护系统的输入输出,防止对系统的漏洞攻击行为的技术。
  • 虚拟补丁是一种基于主机的安全功能,在未对漏洞进行永久补丁修复之前,其工作原理不是修改可执行程序,而是针对网络数据流的深层分析,检测入站流量并保护应用程序免受攻击。
  • 虚拟补J技术较早的使用是在Web应用系统上,较早提出这个概念的是趋势科技,近来绿盟也加入了这个领域,也是在Web上。数据库的虚拟补J是近几年的防御技术,较早提出的是Mcaffee,国内数据库安全厂商安华金和也是这方面的佼佼者。

AWVS原理与使用

AWVS简介

  • AWVS是一-款知名的Web网络漏洞扫描工具,可以用来测试网站、Web应用程序及接口的安全性。
  • AWVS能够 检测7000种以上的Web安全漏洞,包括SQL注入、XSS、 配置不当、弱密码等常见类型。

 AWVS使用示例

步骤1:在攻击机上启动AWVS

步骤2:定义扫描目标:点击左侧菜单“Target” —>“Add Target”,添加靶机的IP地址,将其作为扫描目标。

 步骤3:创建扫描任务

点击左侧菜单“Scans”,再点击“New Scan”按钮,创建一个扫描任务。

然后选择扫描目标

 设定扫描参数

 执行扫描任务

 生成扫描报告

 Nikto简介

  • Nikto是一款基于Perl语言开发的开源Web扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI及其他问题。
  • Nikto'可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的HTTP模式等。

 

 Nikto常用命令

命令功能
-h打开帮助
-host扫描目标Url
-idhttp认证接口
-list-plugins列出所有可用的插件
-evasionIDS/IPS逃避技术(实例演示里有详细信息)
-port指定端口(默认80)
-ssl指定端口(默认80)
-useproxy使用HTTP代理
-vhost当一个IP拥有多个网站时使用
-update更新程序
-outfile以文件形式输出扫描结果
-Format规定输出文件的格式
-Version显示插件和数据库的版本号

Nikto使用实例——常规扫描

nikto -host https://192.168.1.5 

 Nikto使用实例——指定目录扫描

nikto -host https://192.168.1.5 -c /dvwa

 Nikro使用实例——扫描HTTPS网站

nikto -host www.baidu.com -ssl -port 443

 Nikto使用实例——扫描结果输出

nikto -host http://192.168.1.5 -o 1.html -F htm 

OWASP ZAP

OWASP ZAP (OWASP Zed Attack Proxy,OWASP攻击代理服务器)是世界上最受欢迎的免费安全工具之一。ZAP可以帮助我们在开发和测试应用程序过程中自动发现 Web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。

 OWASP ZAP工作原理

ZAP以架设代理的形式来实现渗透性测试。它将自己置于用户浏览器和服务器中间,充当一个中间人的角色,浏览器与服务器的所有交互都要经过ZAP,这样ZAP就可以获得所有交互的信息,并且可以对它们进行分析、扫描,甚至是改包再发送。

OWASP ZAP主要功能

  • 本地代理
  • 主动扫描
  • 被动扫描
  • Fuzzy
  • 暴力破解

 OWASP ZAP的使用

  • 初次打开ZAP时,会看到以下对话框,询问是否要保持ZAP进程。
  • 保存进程则可以让所有操作得到保留,下次只要打开历史进程就可以取到之前扫描过的站点以及测试结果等。一般来说,如果对固定的产品做定期扫描,应该保存一个进程做为长期使用,选第一或者第二个选项都可以。
  • 如果只是想先简单尝试ZAP功能,可以选择第三个选项,那么当前进程暂时不会被保存。

 

 OWASP ZAP 使用实例——代理抓包

步骤1:设置ZAP的代理参数

 步骤2:设置浏览器(Firefox)的代理参数

步骤3: 访问目标网站,ZAP自动抓包

 OWASP ZAP使用实例——快速扫描

  OWASP ZAP使用实例——模糊测试

步骤1:浏览器访问DVWA网站,将其安全级别设置为Low,然后进入SQL Injection训练模块,在User ID处填入1,并点击Submit按钮,查看ZAP是否抓到HTTP报文。

 步骤2:在ZAP界面选中刚刚抓到的HTTP报文,点击鼠标右键,在弹出的菜单中选择“攻击”- >“Fuzz”

 步骤3:选中需要Fuzz测试的位置,点击右侧“Add”按钮,在出现的Payloads”对话框中继续点击“Add”按钮,在弹出的Add Payload对话框中,“类型”选择“File Fuzzers",将列表中的"jbrofuzz"->injection"文件添加进去。

 

 步骤4:执行Fuzz测试