Web掃描器淺析

2021-02-14 計算機與網絡安全

一次性付費進群,長期免費索取教程,沒有付費教程。

進微信群回復公眾號:微信群;QQ群:460500587

 教程列表 見微信公眾號底部菜單 |  本文底部有推薦書籍 

微信公眾號:計算機與網絡安全

ID:Computer-network

1、什麼是Web掃描器

Web 掃描器可以自動地檢查Web 應用程式的安全弱點和風險,它主要通過探測和分析Web應用的響應,從而發現其中潛在的安全問題和架構缺陷。

掃描器的兩個特點:

● 自動檢查Web應用程式的安全弱點和風險

● 主要通過探測和分析Web應用的響應來發現安全問題和架構缺陷

這兩個特點告訴我們,Web掃描器其實是一種自動化的安全弱點和風險檢測;它的工作方式和原理主要是通過分析HTTP(s)請求和響應來發現安全問題和風險。

通常情況下,掃描器的使用人群可以分為兩類,一類是產品測試人員,另一類則是安全測試人員。但是他們對掃描器的功能需求和結果訴求卻是完全不一樣的,因此我們有必要了解一下這兩種不同的使用人群。

(1)從產品測試人員角度看

掃描器主要是用來對Web應用程式進行掃描檢測,根據Web漏洞的常見籤名特徵,對Web應用進行全面的安全檢測,提前發現可能存在的漏洞,做到事前發現和修復。掃描器作為黑盒自動化測試工具,可以幫助我們在QA環節快速發現業務系統的安全缺陷並修復,在產品快速迭代的同時,保證業務上線前的安全。

(2)從安全測試人員角度看

在對一個目標進行滲透測試時,首先需要進行信息收集,然後再對這些信息進行漏洞審計。其中,信息收集的目的是最大化地收集與目標有關聯的信息,提供儘可能多的攻擊入口;漏洞審計則是對這些可能的攻擊入口進行安全分析和檢測,來驗證這些攻擊入口是否可以被利用。由於這兩個環節的工作更多是具有發散性的,因此人工的工作量就會非常大。這個時候就我們需要用到Web掃描器,其實它的目的就是儘可能地幫助我們自動完成這兩個環節,方便安全測試人員快速獲取目標可供利用的漏洞以便進行後續滲透工作。

2、掃描器的重要性

掃描器的重要性分為三方面。

(1)業務上線前的安全保障

隨著企業的發展和壯大,公司內部的業務線也會隨之變多,而單純依靠人工檢測肯定沒有辦法完全覆蓋到,因此我們需要引入安全掃描能力,它能夠為業務在上線發布前進行自動化掃描和檢測,從而可以把煩瑣的安全檢測工作通過掃描器自動完成,這樣不僅可以減少人工的工作量,同時還可以極大地縮減檢測時間,保障業務順利發布和上線。

(2)業務運行中的安全監控

安全其實是一個動態的過程,因此對業務持續地安全監控也是必不可少的,我們可以通過掃描器對業務運行中的日誌或流量進行動態實時的掃描分析及監控,還可以與企業內部的防火牆或WAF進行協同聯動,從而可以達到事中的安全阻斷,保障業務運行中的安全。

(3)業務運行中的安全預警

網際網路中許多開源組件經常會被研究員爆出 0day 漏洞,在這個時候,我們就可以通過掃描器對企業中所有暴露在公網上的資產進行組件的探測識別和漏洞驗證,這樣就可以快速定位到風險資產和目標,並能夠對該漏洞進行修復和升級,從而有效地降低 0day 漏洞給企業帶來的安全風險。

3、掃描器的類型

掃描器的類型其實並沒有嚴格的劃分標準,這裡為了便於理解和記憶,將掃描器按照使用場景進行劃分,可分為三種類型,下面分別進行介紹。

(1)主動型

主動型的意思就是說,當對目標進行掃描時,掃描請求是主動發起的,所以稱之為主動型。它們不受產品形態的約束,既可以是軟體,也可以是硬體,常見的軟體代表有:Acunetix WVS、Nessus Vulnerability Scanner等,它們在主機上成功安裝後,就可以對目標進行安全掃描和測試。硬體代表有:綠盟極光等,它們需要部署在網絡中,才能對目標進行相應的安全掃描。

其特點如下。

優點:功能強大。

缺點:需要安裝或部署,同時存在單機性能瓶頸,相比於雲端型不易於橫向擴展。

這裡不是說不能橫向擴展,而是說不易於,因為這種主動型掃描,不是為大規模掃描而誕生的,它可以理解為雲端型掃描節點,如果在主動型基礎上進行橫向擴展,我們需要額外的開發工作量,比如掃描結果的集中存儲、任務的合理調度等,而並不能像雲端型那樣直接增加掃描節點。

(2)被動型

被動型,它有一個明顯的特點,就是不會向目標發送掃描請求,而是通過中間代理或流量鏡像的方式,通過網絡流量的真實請求去發現和告知可能存在的安全缺陷或漏洞。因此它有兩種常見的工作模式,一種是代理模式,這種模式掃描器會以代理的形式而存在,這樣真實的流量就會流經代理掃描器,此時就可以進行被動的分析和檢測,不會對目標產生新的訪問壓力;另一種則是旁路型,它主要以硬體形式為主,通過獲取待檢測目標的流量鏡像,對其中的HTTP流量進行會話重組和協議解析,最後利用內置的安全特徵和動態沙盒等技術手段以被動的方式發現潛在的攻擊和風險。

其特點如下。

優點:不會產生任何新的流量,不會對掃描目標產生額外的掃描風險。

缺點:它是以被動的方式去檢測和發現的,屬於事中的對抗和監控,並不能有效地將安全風險在事前扼殺,一旦攻擊繞過去,無法及時進行止損。

(3)雲端型(SaaS)

雲端型的掃描器,大多採用B/S結構,用戶通過瀏覽器就可以直接對目標進行安全掃描,它既不需要安裝,也不需要部署,即可使用安全掃描的服務。這類掃描器,其實是將掃描器的實體搬到了雲端,通過雲端的伺服器來對目標進行掃描,掃描請求則是由雲端伺服器直接發起的。常見的雲端型掃描的代表有:百度的雲掃描、360的WebScan和安賽的AIScanner等。

其特點如下。

優點:使用方便,具有跨平臺的特點,同時易於橫向擴展,可用於大規模掃描。

缺點:雲端的實現較為複雜,難度也較大,比如:雲端的任務分發和調度、雲端資源的高效分配和利用,以及雲端設備的監控和報警等相關的雲端技術實踐。

4、常見的掃描器

下面介紹幾種常見的掃描器。

(1)Acunetix Web Vulnerability Scanner

Acunetix Web Vulnerability Scanner 是一款國外知名的 Web 應用安全掃描器,運行在Windows平臺,可以檢測Web應用程式中的SQL注入漏洞、XSS跨站腳本漏洞、敏感信息洩露等常見 Web 漏洞。它包含收費和免費兩種版本,其安裝和使用也非常簡單,但功能卻非常強大。

(2)Burp Suite

Burp Suite其實是一款代理型掃描和攻擊集成平臺,依賴於Java運行環境,可跨平臺運行,它位於瀏覽器與目標Web伺服器之間,主要進行HTTP(s)信息傳遞,同時可以對流經的HTTP(s)請求/響應進行攔截、查看和修改。

(3)Tenable's Passive Vulnerability Scanner

Tenable's Passive Vulnerability Scanner是一款被動型的掃描器,支持Windows、Linux和Mac三種作業系統平臺。它以一種非入侵性的方式,提供持續的實時網絡分析和監控。它通過監控和分析網絡流量,可以快速地確定拓撲結構,主機,服務,漏洞和應用程式,實時地查看當前的安全狀態和目標存在的漏洞,如下圖:

(4)TeyeScan(真眼掃描器)

TeyeScan是一款雲端型掃描器,之前叫WatScan,後更名為TeyeScan。

我們可以看到,雲端型的掃描器使用非常簡便,通過在雲端服務平臺上註冊帳號,然後提交任務目標進行掃描檢測即可,待掃描結束後就可以在線查看對應的掃描報告,如下:

5、掃描器評測

既然有這麼多的掃描器,那麼什麼樣的掃描器才算是好的掃描器?這就需要有一個評測的標準,國外有一個專業的掃描器評測網站「sectoolmarket」,它會從漏洞的準確率、覆蓋面、錯誤率和功能特點等多個維度對掃描器進行全面評測,同時它還發布了供掃描器評測的漏洞測試集項目——Wavsep。

下面列舉了許多已經評測過的掃描器,具體的評測效果單擊掃描器名即可看到,由於頁面內容較多,這裡只截取如下部分進行說明。

6、漏洞測試平臺

漏洞測試平臺,主要用來測試掃描器的功能特點、漏洞的準確性,以及覆蓋率,並根據這些結果來評估掃描器整體的質量和能力。我們可以利用它來發現掃描器的不足和缺陷,從而進一步完善和改進掃描器的能力。這裡介紹一個常見的第三方掃描器漏洞測試平臺。

Wavsep(Web Application Vulnerability Scanner Evaluation Project)是一個開源的Web應用程式掃描器評估項目,包含漏洞的Web應用程式,目的是幫助測試Web應用漏洞掃描器的功能、質量和準確性。Wavsep收集了很多獨特的包含漏洞的Web頁面,用於測試Web應用程式掃描器的多種特性。

● Reflected XSS:66 test cases,implemented in 64 jsp pages (GET&POST)

● Error Based SQL Injection:80 test cases,implemented in 76 jsp pages (GET&POST)

● Blind SQL Injection:46 test cases,implemented in 44 jsp pages (GET&POST)

● Time Based SQL Injection:10 test cases,implemented in 10 jsp pages (GET&POST)

其Github地址為https://github.com/sectooladdict/wavsep。

7、掃描環境部署

掃描器關聯的內容比較多,因此涉及的環境比較多。這裡主要以掃描環境的搭建部署為主。掃描環境中需要兩臺機器進行開發和測試,其中一臺作為測試環境,主要用來部署掃描器評估項目,提供漏洞靶場,驗證掃描器的漏洞檢測功能;另一臺則作為掃描器的開發和調試環境,在這臺機器上進行掃描器開發和調試工作。

(1)測試環境

Wavsep項目主要用來對Web應用掃描器進行評估,與需求比較吻合,因此,這裡就選擇用它來作為漏洞測試環境,具體的安裝步驟如下:

1)安裝JDK

① 下載JDK

訪問連結http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,在頁面中選擇對應的版本,這裡選擇Linux x64進行下載,如下:

② 解壓並安裝

③ 配置Java環境

設置環境變量:

在文件末尾處添加:

並保存。

④ 配置生效,驗證環境,輸入下面命令,獲取版本信息,即表明安裝成功。

2)安裝Tomcat

執行安裝命令,如下:

3)安裝MySQL

執行安裝命令,如下:

4)安裝Wavsep

① 切換到tomcat8的webapps目目下,部署Wavsep項目代碼,如下:

② 訪問連結http://localhost:8080/wavsep/wavsep-install/install.jsp。

按照頁面提示進行配置,安裝成功後如下圖:

(2)開發環境

下面開始搭建掃描器所需要的環境,由於這裡所要介紹的掃描器是基於 Python 語前進行構建的,因此需要安裝Python開發所需要的基本環境及相應的功能模塊。

1)Python環境

Python有兩個主要的版本,一個是Python 2.x,簡稱Python 2;另一個是Python 3.x,簡稱Python 3。由於Python 3在設計時並沒有考慮向下兼容的問題,導致很多早期Python程序或模塊無法在Python 3.x上正常運行。考慮穩定性和學習成本的因素,我們選擇Python 2.x版本進行實踐,其中在Debian 8系統中默認的Python環境為Python 2.7.9,因此選擇它作為掃描器的語前開發環境。

2)IDE環境

由於掃描器的功能較多,在開發過程中會涉及編碼、調試等相關工作。為了提高開發效率,需要選擇一款集成的Python開發環境,常用的IDE環境主要以Pycharm和Eclipse+PyDev為主,其實兩者功能差不多,由於Pycharm的安裝配置相對簡單,因此這裡選擇Pycharm作為開發的IDE環境,直接從官網下載對應平臺的版本進行安裝即可。

運行後如下圖:

3)pip包管理工具

pip是一個安裝和管理Python包的工具,是easy_install的替代工具。它可以省去很多手工安裝的麻煩,讓我們更加方便地管理第三方模塊。這裡使用 Debian 的應用程式管理器進行安裝,執行下面命令:

成功安裝後,顯示如下:

4)PyQt

Qt是一個基於C++的跨平臺開發框架,它既可以開發GUI程序,也可以開發非GUI程序,功能十分強大。為了讓Python能夠直接調用Qt,所以就選擇用PyQt。

其實PyQt是Pyhon編程語前和Qt庫的綁定,PyQt作為一組Python模塊的實現,有超過300個類和超過6 000個函數方法,同時它還是跨平臺的工具包,可以在所有的主流作業系統上運行。由於有大量可用的類,所以它被分成多個模塊顯示,如下圖:

我們主要用到其中的 QtWebKit 模塊,它實現了開源瀏覽器引擎 WebKit 的瀏覽器引擎的封裝。

由於PyQt是基於Qt庫進行的Python封裝,因此首先需要安裝Python和Qt的相關庫。流程如下:

① 安裝Python和Qt的開發模塊

② 下載SIP進行安裝

③ 下載PyQt4進行安裝

5)WebKit

WebKit 是一個開源的瀏覽器引擎,它由三部分組成,WebCore 排版引擎核心、JSCore 引擎和WebKit移植層,其中WebCore和JSCore均是從KDE的KHTML和KJS引擎衍生而來的。WebKit高效穩定,兼容性好,且源碼結構清晰,易於維護。蘋果的Safari和Google的Chrome都是基於WebKit引擎開發的瀏覽器。

6)Ghost.py

Ghost.py是一個使用Python編寫的封裝了WebKit的網絡工具,能夠方便我們對瀏覽器引擎進行交互操作,同時對於瀏覽器事件的處理有很大的擴展性,對於Web 2.0頁面的爬取很有幫助。Web 2.0 爬蟲的實現需要依賴於該模塊。由於最新版本已經做了很大的改動,所以這裡我們選擇原始碼進行安裝。

執行下面命令即可安裝Ghost.py:

7)Memory_profiler

Memory_profiler是 Python 中的一個第三方內存監控模塊,它主要用來基於逐行測量代碼的內存使用,但是使用它會讓代碼整體運行變得更慢。

下面利用pip安裝Memory_profiler,執行命令如下:

運行成功界面如下:

另外,建議安裝psutil包,這樣Memory_profiler會運行得快一點,執行命令如下:

運行成功界面如下:

用@profile裝飾器來標識需要追蹤的函數即可,創建文件如下:

輸入命令,即可查看內存使用情況,如下:

執行後的結果,如下圖:

從上面的結果中,可以看到程序執行每行代碼的內存使用情況,不過這裡的內存計算是以MiB為單位衡量的,表示mebibyte,其中1MiB=1.05MB。

8)Nose

在掃描器的實踐中,需要對各種功能進行測試和驗證,因此還需要有相應的測試框架,Python中常用的測試框架有Unittest、Pytest和Nose。相比較而前,Nose簡單易用,功能豐富,所以這裡我們用Nose作為功能測試框架。不過Nose並不是Python官方發行版的標準包,它屬於第三方模塊,需要額外安裝。它主要通過對Unittest進行擴展,讓測試工作更簡單。Nose能夠自動發現測試代碼並執行,同時還提供了大量的插件。

利用pip安裝Nose,執行命令如下:

成功安裝後顯示如下圖:

微信公眾號:計算機與網絡安全

ID:Computer-network

相關焦點

  • web漏洞掃描器 Acunetix 10中文介紹
    倫敦時間,2015年6月24日發布了Acunetix 10,這是非常好用的一款web漏掃,國外很多同類產品還是比不上它的,國內的破漏掃就更不用說了。1、登錄保護頁面的自動掃描一個網站最有可能被攻擊和容易受到攻擊的區域往往是那些需要用戶登錄的區域。因此對的Acunetix最新版本大大提高了它的'登錄序列記錄器',可現在可以自動地和輕鬆瀏覽複雜的驗證區域,不再需要經常需要手動幹預。
  • 掃描器倉庫 - Scanners Box
    https://github.com/OffensivePython/Nscan (基於Masscan和Zmap的網絡掃描器)https://github.com/ywolf/F-NAScan (網絡資產信息掃描, ICMP存活探測,埠掃描,埠指紋服務識別)https://github.com/ywolf/F-MiddlewareScan (中間件掃描)
  • 被動掃描器之插件篇
    最近被動掃描器的話題如火如荼,好多公司都在做自己的被動掃描器。而獲取質量高的流量是被動掃描器起作用的關鍵。
  • 爬蟲基礎篇[Web 漏洞掃描器]
    本文作者: fatez3r0  已獲得作者授權轉載本文博客地址:http://blog.fatezero.org/2018/03/05/web-scanner-crawler0x02 小改 ChromiumOK,既然我們已經選定了 Headless Chrome,是不是可以擼起袖子開始幹了呢,很抱歉, 目前 Headless Chrome 還是不太滿足我們掃描器爬蟲的需求,我們還需要對其代碼進行修改。
  • 黑客喜歡的掃描器盒子
    · https://github.com/ring04h/wyportmap(目標埠掃描+系統服務指紋識別)· https://github.com/ring04h/weakfilescan(動態多線程敏感信息洩漏檢測工具)· https://github.com/EnableSecurity/wafw00f(標識和指紋web應用防火牆)·
  • Netsparker掃描器IAST使用
    0x00 前言之前測試了AWVS掃描器的IAST功能,使用上不是很方便,需要對每個服務啟動一個掃描任務才可以進行掃描,比較主動,無法作為獨立的被動式掃描器使用
  • 國產WEB掃描器北極熊使用技巧
    看起來我們搜索到了【騰訊】相關的網段,右鍵就可以添加到「掃描任務」當中了,接下來就可以點擊【開始計劃】    那麼掃描完成後的文件,都會保存在:【配置文件\任務備份】當中,並且會自動生成【XLS表格】  那麼,如何利用關鍵字,把掃描好的結果提取出來呢??
  • 最好用的開源Web漏洞掃描工具梳理
    當然很多付費掃描器功能會更加全面、嚴謹,包含報表輸出、警報、詳細的應急指南等等附加功能。開源工具最大的缺點是漏洞庫可能沒有付費軟體那麼全面。1. ArachniArachni是一款基於Ruby框架搭建的高性能安全掃描程序,適用於現代Web應用程式。可用於Mac、Windows及Linux系統的可移植二進位文件。
  • Web滲透-掃描工具之burpsuite
    紅客突擊隊Web滲透——掃描工具之burpsuite前言
  • Python 實現 FTP 弱口令掃描器
    Ftp掃描器實現方案:本課程開發Ftp掃描器主要從以下兩個方面著手:掃描匿名FtpFtp匿名登錄的掃描主要應用於批量掃描中,單獨針對一個Ftp伺服器進行掃描的話成功機率比較小,不過也不排除成功的可能。這樣就給了我們很多機會,尤其後者的伺服器很容易就受到攻擊,後期我會講解Ftp目錄下可以搜到web頁面之後怎樣拿到Shell(大家多多關注我的教程吧,還有很多精品課程等著你!)。掃描Ftp弱口令Ftp弱口令掃描其實就是暴力破解,為何我們不稱為暴力破解呢?
  • 主流WEB漏洞掃描器種類及其指紋特徵分析
    Windows/Linux版本:https://www.rapid7.com/info/nexpose-trial/虛擬機版本:https://www.rapid7.com/info/nexpose-virtual-appliance/社區版本:( 免費試用一年 )https://www.rapid7.com/info/nexpose-community/註:以上WEB漏洞掃描器產品中
  • 【乾貨分享】Django 初次嘗試編寫 Web 漏洞掃描器挖坑記錄
    所以這個漏洞檢測功能最終就是使用 AWVS 13 爬蟲來爬取目標資產信息,然後將獲取到的信息轉發給 xray 進行漏洞檢測,直接用輪子效率真的高,新版本的 xray 支持 webhook 方便獲取到漏洞信息,Demo 界面如下:Django寫的對應的 xray webhook 接口,下面是這個接口簡單的實現代碼: 1import json
  • 爬蟲 JavaScript 篇[Web 漏洞掃描器]
    接下來我們要考慮一下如何使用 dispatchEvent 觸發事件, 可能有些同學覺得,我們可以掃描所有元素節點,收集內聯事件,對於動態添加的事件,可以 Hook addEventListener 獲取到, 最後再挨個觸發元素相對應的事件,其實這樣做是有問題的。我們還是先看看一個例子:
  • xray掃描器使用
    --url-file value  從本地批量讀取並掃描這些url--url value  掃描單個url--data value  數據字符串通過POST--raw-request File  從一個文件中加載原始的http請求--json-output File 文件輸出結果到json格式的文件--html-output
  • 14種開源的流行掃描器介紹
    這就是為什麼Web應用程式的安全測試非常重要的原因,而這裡也是web應用安全掃描器的角色,Web應用程式安全掃描器是一種軟體程序,可在Web應用程式上執行自動黑匣子測試,並識別安全漏洞。掃描器不訪問原始碼,它們只執行功能測試並嘗試查找安全漏洞。各種付費和免費的Web應用程式漏洞掃描器都可以使用。在這篇文章中,我們列出了最好的免費開源Web應用程式漏洞掃描程序。
  • 開源工具Zeus-Scanner宙斯掃描器
    它是通過selenium-webdriver來自動運行web瀏覽器(firefox)。能夠繞過搜尋引擎的API調用,IP黑名單和驗證碼機制,從而不斷地向搜尋引擎發送request請求。二 . 內容宙斯掃描器本身內置有url解析器,除了默認的Google搜尋引擎之外還兼容Aol,Bing和DuckDuckGO多個搜尋引擎,同時能夠對搜索結果進行多個漏洞評估。
  • 智恆網站安全應用掃描系統——重新定義web掃描新方式
    智恆網站安全應用掃描系統(WebPecker)是智恆科技網絡安全實驗室通過近十年的深入研究當前各類流行 Web 攻擊手段(如網頁掛馬攻擊、SQL 注入漏洞、跨站腳本攻擊等)的經驗研發的專注於漏洞挖掘的web掃描系統。
  • Web應用掃描器OWASP ZAP
    瀏覽器所有與伺服器的交互都要經過ZAP,這樣ZAP就可以獲得所有交互的信息,並且可以對他們進行掃描、分析,甚至是改包再發送。保存進程可以讓操作得到保留,下次只要打開歷史進程就可以取得之前掃描過的站點及測試結果。如果是對固定的產品做定期掃描,應該保存一個進程作為長期使用,選擇第一個/第二個選項都可以。
  • 科普 | 條形碼掃描器
    一句話要點:條形碼掃描器是一種手持、固定輸入設備,用於捕獲和讀取條形碼中包含的數據信息,有效提高信息處理效率與降低計算成本。條形碼閱讀器的工作原理是將一束光穿過條形碼並測量反射回來光線的數量。而條形碼中空白的部分相比黑線部分會反射更多的光線,通過捕捉兩者產生的異步電荷,使解碼器生成數據再上傳給後臺計算機處理。
  • Web安全:埠掃描工具
    埠掃描工具主要用於發現網絡空間中主機埠的開放情況以前常用的埠掃描工具有SuperScan等,現在常見的埠掃描工具有Nmap、Zenmap、河馬多線程埠掃描器等。1、NmapNmap是一款功能十分強大的,主要針對系統主機埠開放情況進行刺探的掃描工具,其掃描的範圍包括系統主機埠、伺服器banner等敏感信息。Nmap工具如圖1所示。