• 5.5 漏洞扫描:Web安全漏洞扫描及审计


    目录

    一、预备知识:Web漏洞的获取方法与w3af

    1. 漏洞扫描

    2. 漏洞扫描器

    3.  w3af

    二、实验环境

    三、实验步骤

    四、实验思考


    一、预备知识:Web漏洞的获取方法与w3af

    1. 漏洞扫描

            漏洞扫描除用于网络攻击外,还用于对网络的安全防御。系统管理员通过对网络漏洞的系统扫描,全面地了解网络的安全状态,并对发现的安全漏洞及时安装补丁程序,提升网络防范攻击的能力。
            漏洞扫描技术的工作原理是基于目标对象(操作系统、网络服务、应用程序等)的特征码实现的。例如,对于同一个类型和版本号的操作系统来说,针对某一安全漏洞,对于某些网络请求的应答,安装安全补丁前后会存在一些细微的差异,这些差异便构成了针对特定安全漏洞的特征码(指纹信息)。漏洞扫描技术正是利用了这些特征码来识别目标对象是否存在特定的安全漏洞。

    2. 漏洞扫描器

            网络漏洞扫描器对目标系统进行漏洞检测时,首先探测目标网络中的存活主机,对存活主机进行端口扫描,确定系统已打开的端口,同时根据协议栈指纹技术识别出主机的操作系统类型。然后,扫描器对开放的端口进行网络服务类型的识别,确定其提供的网络服务。漏洞扫描器根据目标系统的操作系统平台和提供的网络服务,调用漏洞资料库(一般该资料库需要与业界标准的CVE保持兼容)中已知的各种漏洞进行逐一检测,通过对探测响应数据包的分析判断是否存在漏洞。

    3.  w3af

            w3af( web applicaiton attack and audit framework,Web应用攻击与审计架构)是一个Web应用安全的攻击、审计平台,通过增加插件的方式来对功能进行扩展。w3af 是一款用python 写的工具,同时支持GUI和命令行模式。

            w3af目前已经集成了大量的功能丰富的各类攻击和审计插件,为便于使用,对插件进行了分类,而且有些插件还提供了一个实用工具,并支持多种加解密算法。下面介绍几类典型的w3af插件。

            (1)Crawl类插件。Crawl(爬取)类插件的功能是通过爬取网站站点来获得新的URL地址。如果用户启用了Crawl类的插件,将会产生一个循环操作:A插件在第一次运行时发现了一个新的URL,w3af 会将其发送到插件B;如果插件B发现了一个新的URL,则会将其发送到插件A。这个过程持续进行,直到所有插件都已运行且无法找到更多的新信息为止。

            (2)Audit类插件。Audit(审计)类插件会向Crawl插件爬取出的注入点发送特制的探测信息,以确认是否存在漏洞。

            (3)Attack类插件。如果Audit插件发现了漏洞,Attack(攻击)类插件将会进行攻击和漏洞利用。通常会在远程服务器上返回一个操作界面,或者进行SQL注入以获取数据库中的数据。

            (4)Infrastructure类插件。Infrastructure(基础设施)类插件用来探测有关目标系统的信息,如目标系统是否安装了WAF(Web Application Firewall, Web应用程序防火墙)、目标系统运行的操作系统、目标系统上运行的HTTP守护进程等。

            (5)Grep类插件。Grep(检索)类插件会分析其他插件发送的HTTP请求和应用信息,并识别存在的漏洞。

            (6)Output类插件。Output(输出)类插件会将插件的数据以文本、XML或HTML形式保存,供分析使用。另外,如果启用了text_file和xml_file两个Output插件,就会记录有关Audit类插件发现的任何漏洞。

            另外,Mangle类插件允许用户修改基于正则表达式的请求和响应,Broutforce类插件在爬取阶段可以对系统进行暴力登录,Evasion类插件通过修改由其他插件生成的HTTP请求来绕过简单的入侵检测规则。

    二、实验环境

            攻击机:BT5

            靶机:windows server 2003

    三、实验步骤

    1、登录BT5,打开命令行,运行“cd /pentest/web/w3af”命令,切换到w3af目录下,用“ls”查看当前目录下的文件。

    2、使用“./w3af_console”命令启用w3af,使用“help”命令可以查看相关的命令介绍。

     3、使用“plugins”命令配置相关插件,“help”命令查看操作命令的帮助信息。

     4、输入“output”命令配置output插件。

    5、使用“output config htmlFile”命令,修改输出的相关参数,用“view”查看可利用的选项和值。

     6、设置输出的扫描文件为testreport.html:

    1. set verbose True
    2. set fileName testreport.html

    7、使用“back”命令返回到plugins目录下,运行“output config console” ,输入“set verbose False”后“back”,,返回到插件设置界面。

     

    8、输入“audit”命令,显示如下图所示的漏洞类型。

    9、对 htaccessMethods,osCommanding,sqli和xss进行审计操作,然后返回到主目录,命令为:

    1. audit htaccessMethods,osCommanding,sqli,xss
    2. back

     10、使用“target”命令进入target目录。

    11、设置目标地址,并返回。

    12、使用“start”命令开始扫描。

    四、实验思考

            漏洞扫描器的组成及主要功能:

            1.安全漏洞数据库

            安全漏洞数据库一般与CVE(Common Vulnerabilities and Exposures,通用漏洞披露目录)保持兼容,主要包含安全漏洞的具体信息、漏洞扫描评估的脚本、安全漏洞危害评分(一般采用CVSS通用漏洞分组评价体系标准)等信息,新的安全漏洞被公开后,数据库需要及时更新。其中,CVSS(Common Vulnerability Scoring System,通用漏洞评分系统)是一个开放的并且能够被产品厂商免费采用的标准。

            2.扫描引擎模块

            作为漏洞扫描器的核心部件,扫描引擎模块可以根据用户在配置控制台上设定的扫描目标和扫描方法,对用来扫描网络的请求数据包进行配置与发送,并将从目标主机接收到的应答包与漏洞数据库中的漏洞特征码进行比对,以判断目标主机上是否存在这些安全漏洞。为了提高效率,扫描引擎模块一般提供了主机扫描、端口扫描、操作系统扫描、网络服务探测等功能,供具体扫描时选用。

            3.用户配置控制台

            用户配置控制台是供用户进行扫描设置的操作窗口,需要扫描的目标系统、检测的具体漏洞等信息都可以通过配置控制台来设置。

            4.扫描进程控制模块

            在针对漏洞的具体扫描过程中,攻击者不仅需要知道扫描结果,许多时候还要实时了解扫描过程中显示的内容,以便通过一些细节来获取有价值的信息。扫描进程控制模块提供了这些功能。

     

  • 相关阅读:
    解析字符串拼接的两种情况
    Pylint检查规则中文版
    Kafka学习之:mac 上基础使用 python 来使用 kafka 的生产者和消费者进行数据处理
    Windows 11 新材质 Mica Alt 效果展示
    如何在 Java 中使用 MQTT
    谈谈多线程与多线程同步
    Java并发操作之synchronized互斥锁总结
    后量子密码学中的模数是多少?
    xen-timer
    java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
  • 原文地址:https://blog.csdn.net/qq_55202378/article/details/126156330