• 10個安全測試與分析的 VM工具包

    這篇文章主要介紹10種常見的 Linux 安全測試工具包

    這些安全測試工具安裝好在 Linux只需要下載 VM開機就可以執行

    每一種 Linux VM安全工具集都有他的特色, 分別介紹如下

    筆者推薦

    十鳥在林不如一鳥在手

    這麼多種的工具急筆者建議在各領域選取一種即可

     

    Kali Linux

    Download Kali Linux

    Image result for Kali testing

    這是所有的安全測試工具集中最為廣泛

    除了因為他有完整的線上文件說明, 另外 Amazon也有許多的書籍介紹使用

    特別的是 Kali Linux 還有 Android 版本

    另外, 針對不同使用場景也有 MetaPackages

    例如: 數位鑑定  無線監聽  網站安全測試等不同領域

    https://www.kali.org/news/kali-linux-metapackages/

     

    BlackArch

    Download BlackArch Linux

    BlackArch Linux Font

     

    這是另外一個積極更新的安全測試與黑客工具集

    特色是什麼呢?  1700+黑客工具大集合,  收集超過 1700多個工具

    這裡有每個工具的說明與來源, 這個清單很值得參考

    如果哪一天想要進行某測特別的安全測試, 可以到這裡找找

    https://blackarch.org/tools.html

    Image result for BlackArch

    BugTraq

    Download Bugtraq

    Image result for Bugtraq

    這個工具主要特色是集合各領域大全

    包含病毒分析  安全測試  數位鑑定  網站測試等

    Bugtraq安全測試與分析工具集

    Parrot Security OS

    Download Parrot Security OS

    主要特色在於該工具集標榜雲端隱私數據的測試

    還有可以利用 USB 進行測試方式

    收集的工具與 Kali Linux 沒有太大差異

    BackBox

    Download BackBox Linux

    Linux 下載的版本免費, 另外提供雲端版本依照使用情況收費,

    收集的工具與 Kali Linux 沒有太大差異

    Web 測試工具集

    Download Samurai Web Testing Framework

    這個工具主要特色是針對 Web 安全測試工具的收集

    由於目前雲端服務大部分都是 Web服務的型態

    當 Kali Linux Web 測試工具無法滿足需求

    或許可以到這個工具看看是否還有其他測試方式

    Image result for Samurai Web Testing Framework

    Image result for Samurai Web Testing Framework

     

     

    PenToo

    Download Pentoo Linux

    Image result for PenToo Web

    這個工具集更新至 2015之後似乎就沒有更新

    但是這個工具集的列表很值得參考, 列出工具來源與說明

    當要尋找特定工具或是測試場景  或許可以這裡來尋找

     

    DEFT (DIGITAL EVIDENCE & FORENSIC TOOLKIT)

    Download DEFT Linux

    這個工具主要為數位鑑識的領域

    另外還有使用說明 http://www.deftlinux.net/doc/EN-deft7.pdf

    Package list

    CAINE

    Download Caine

    數位鑑定與分析工具集, 這領域的工具主要的目的在於從數位儲存資訊中找出蛛絲馬跡

    例如: 黑客入侵的軌跡, 惡意修改的紀錄, 曾經執行過的程式等

    這個工具列表說明是一個很值得參考的資源, 當要尋找特殊資源時 可以到這個工具列表

    另外這工具也支援安裝到 USB,

    因此分析人員就可以帶著USB到所需要分析的電腦進行資訊的收集

    如何VM OS安裝至 USB

    可參考這個免費的工具 Rufus, 可以將 VM 安裝至 USB

    http://rufus.akeo.ie/

    [rufus screenshot]

    Network Security Toolkit

    Download Network Security Toolkit

    Image result for Network Security Toolkit (NST)

    這個工具集主要收集 Top 125 網路分析工具

    特別的是包含許多地圖與地球的網路分析

    http://www.networksecuritytoolkit.org/nst/index.html

    http://sectools.org/

  • Bugtraq安全測試與分析工具集

    Image result for Bugtraq

    http://bugtraq-team.com/downloads.html

    這篇文章主要介紹 BugTrag的 Linux VM安全測試與分析工具包,

    這工具包跟Kali Linux 有什麼不同呢?

    主要不同的是這工具包除了安全測試工具之外,

    另外包含許多安全數位鑑識, 病毒分析等工具

     

    數位鑑識工具

    分析記憶體  硬碟  檔案  快取空間  垃圾桶  文件  日誌等等

    任何數位儲存的資訊  都可以透過這類工具做有效的搜尋

    凡走過必留下痕跡, 除了應用在程序運行的軌跡之外,

    也應用在病毒分析或是刑事數位偵查的領域

    病毒分析

    病毒分析也是一個十分專門的領域 , 廣泛來說包含靜態與動態分析

    知名的沙箱分析 Cuckoo  也收錄在內

    另外針對病毒分析工具集, 筆者推薦 Remnux https://remnux.org/#distro

    無線通訊駭客工具

    無線通訊包含許多技術 GSM, RFID, 藍芽等

    這說明公開場合的免費無線連接為什麼不安全的原因了

     

    中間人攻擊

    這類的工具主要為監聽與擷取訊息

    最知名的為 WireShark, 擷取網路上封包之後進行分析

    這說明網路訊息加密傳輸的重要性. 網路加密傳輸目前最為普及的就是 HTTPS

    安全測試

     

    密碼攻擊

    密碼攻擊主要分為線上即時攻擊與離線攻擊

    線上即時攻擊最常見的是 BruteForce  使用密碼字典檔案不斷的嘗試

    離線攻擊的方式則是取得加密後的密碼資料庫,

    分析該加密或是 Hash資料表進行反向推測原始密碼

    DDOS攻擊

    DDOS 的攻擊工具很多, 攻擊的技巧很很容易

    基本原理為發送大量請求造成服務端癱瘓

    主流的DDOS 攻擊還是為 TCP 與 HTTP 兩者協議為主

    弱點掃描

    Web 安全測試

    資料庫測試

    網路偵測

    匿名隱身

     

     

  • 如何自動化測試ClickJacking

    Image result for clickjacking

    這篇文章主要說明如何用一個簡單的Python程式

    自動化測試給定的網站是否有ClickJacking的安全風險

    什麼是 ClickJacking?

    簡單來說 ClickJacking比較像是複寫紙的概念

    簽名時看到的是請假單. 可是背後卻是一張鉅額的借據

    因此使用者在不知情的情況下, 以為是請假單點選 事實上是點選背後的借據

    如何防護 ClickJacking

    最簡單的方式就是每個頁面加上 X-FRAME-OPTIONS

    如何檢測 ClickJacking

    因此要如何判斷該網站是否有 clickjacking 的風險呢? 我們必須進行兩種檢查

    • 檢查網頁的 Http Header是否有 X-FRAME-OPTIONS
    • 用一個測試網頁  利用iFrame的方式瀏覽該網站 可以瀏覽成功表示該網站有ClickJacking風險

    ClickJacking測試用HTML

    可以用下列HTML 儲存為 ClickJack.HTML

    URL 為目標測試網站, 用瀏覽器啟動

    如果瀏覽器啟動後可以看到目標網站的內容, 則該網站具有 ClickJacking的風險

    <html>
    <body>
    <iframe src="'''+URL+'''" height='500px' width='600px'></iframe>
    </body>
    </html>

     

    Python 範例小技巧

    要如何用Python 完成該檢查呢?

    首先我們利用 requests 這個模組, 幫我們取得網站內容

    判斷回覆的 Http header 中是否包含 x-frame-options

    import requests
    
    req = requests.get(URL)
    xframe = req.headers['x-frame-options']

    接著, 要如何才能夠啟動上述的 ClickJacking網站檢查網頁內容呢?

    這邊介紹一個簡單的方式 ghost

    利用Ghost這個模組來幫我們啟動HTML檢查啟動後結果

    怎麼檢查呢? 其實只需要檢查網頁URL 是否有出現在 Page Title即可

    如果網頁開啟之後  網站可以順利瀏覽  Page Title 會出現該網站的URL

    http://jeanphix.me/Ghost.py/

     

    範例程式

    import requests
    from ghost import Ghost
    import logging
    import os
    
    #<iframe src="http://usabledesigns.com/demo/iframe-test"></iframe>
    
    URL = 'http://usabledesigns.com/demo/iframe-test'
    URL = 'https://target.com'
    
    #def clickjack(URL):
    
    
    req = requests.get(URL)
    
    try:
        xframe = req.headers['x-frame-options']
        print 'X-FRAME-OPTIONS:', xframe , 'present, clickjacking not likely possible'
    except:
        print 'X-FRAME-OPTIONS missing'
    
    print 'Attempting clickjacking...'
    #clickjack(URL)
    
    html = '''
    <html>
    <body>
    <iframe src="'''+URL+'''" height=500px' width='600px'></iframe>
    </body>
    </html>'''
      
    html_filename = 'clickjack.html'
    log_filename = 'test.log'
      
    f = open(html_filename, 'w+')
    f.write(html)
    f.close()
    
    logfilehandler = logging.FileHandler(log_filename)
    ghost = Ghost(log_level=logging.INFO, log_handler=logfilehandler)
    page, resources = ghost.open(html_filename)
      
    l = open(log_filename, 'r')
    if 'forbidden by X-Frame-Options.' in l.read():
        print 'Clickjacking mitigated via X-FRAME-OPTIONS'
    else:
        href = ghost.evaluate('document.location.href')[0]
        if html_filename not in href:
            print 'Frame busting detected'
        else:
            print 'Frame busting not detected, page is likely vulnerable to clickjacking'
    l.close()
    
    logging.getLogger('ghost').handlers[0].close()
    os.unlink(log_filename)
    os.unlink(html_filename)