Vulnerability Assessment 2 - Sky

了解安全防護與預防

(know more about security industry)

 

一、資安顧問

   資安顧問主要大約分為以下三種:

   1. Security Researcher

       A technical engineer who is good at CTF, PT, CVE etc domains

       增加密碼的複雜度,增加安全性,並30天內更換一次,且新的密碼跟前五次更換的不得重複

      ex:密碼要超過10位數有大小寫,有字母有數字,常用詞不能使用

        >>>使用者密碼難以記住,過程麻煩,難以執行

 

   2.Security Auditor

       An organized engineer who is good at NIST, ISO, PCI etc standards

 

 

      增加驗證手續,或讓認證手段更加複雜

      ex:要求回答多數問題,使用手機驗證後再用信箱驗證

      >>>使用者十分麻煩,太多事情需要去做

 

   3.Security Analyst

      A logical and smart engineer who is good at forensic, RE, seize&trace

 

 

     他們提供了準確的數據和明確的證據表明這些事件

     >>>要所有人都十分配合才能去做到這個理想化的做法

**木桶理論

   A.決定可以裝的水量的關鍵不在最長的木板,而是在最短的木板

   B.木桶的最終儲水量,還取決於木桶的使用狀態和相互配合

        >>去取得最佳的平衡

 

二、弱點分析與滲透測試

 

1. 弱點分析 (Vulnerability Assessment, VA)

 

     A.藉由自動化的工具偵測系統或應用程式中的安全弱點  --> 工具掃描

        ex:幫一個網站做弱點檢測

            狀況:

            針對安裝好的WEB 如果要去做PT 可能有資料夾有問題 要如何快速地去找到有問題的資料夾?

               >>VA可以快速把東西爬出來而我們可以看到列表

               >> 一個自動化的檢測工具~但是是一個寫死的人工智慧

    B. 用一個大樓來比喻網站

         VA可以讓你知道那棟大樓有幾個門幾個窗哪些走道,也就是說這個網站有哪些服務有哪些資料夾

   C. 弱點分析方法:

       (1) URL → by hyper link(樹狀方式往下挖資料 --> 資料夾)

      (2) URL --> enumuration(列舉) --> 用自己的清單(EX:帳號密碼清單)Scan別人的

    D. 缺點:

        (1) 僅能找到系統或應用程式的弱點,而不能做進一步的攻擊動作或檢測

           進一步動作例如:弱點利用、DOS測試

      (2) 不能找出邏輯上的錯誤,有可能會有誤判,因為他是一個特徵導向的工具

 

2. 滲透測試 (Penetration Testing, PT) --> 人工掃描

    Manual assessment

    人工智慧

    時間夠,任何機器都可以破解滲透

    缺點:耗時(因為要用各種不同的方法測試XD)

 

3. 滲透測試與弱點分析之差別

弱點掃描可由自動化掃描軟體在較短的時間內執行完畢,因此時間與金錢成本相對較低。但是弱點掃描僅能檢測既有的漏洞,無法及時檢測出最新的資安漏洞並給予修補建議,同時對於弱點的誤判率也較高。目前滲透測試為求完整,通常已將弱點掃描包含在內。

    滲透測試亦可用自動化工具針對目標掃描,但亦可取得受測目標的存取權限或控制權

     --> 利用掃描出來的弱點做進一步的攻擊

     --> 而進一步的攻擊可依照客戶需求進行多項的駭客手法測試

    --> 人工掃描

 

    **比喻:

          駭客的攻擊 --> 小偷

       想盡辦法找到侵入房子的途徑

       --> 也就是找到系統或應用程式的弱點以侵入作破壞

 

      弱點掃描 --> 保全人員

      藉由巡邏檢查整個區域是否已經都上鎖、已經安全

      --> 也就是掃描系統與應用程式中有無弱點讓駭客侵入

 

      滲透測試 --> 安全專家

      用各種方式找到任何可能入侵房子的方法或途徑(EX:用石頭砸窗戶,看窗戶是否堅固)

      --> 也就是模擬駭客的思維,進行各種駭客攻擊的手法,去測試系統或應用程式的安全

 

   滲透測試為弱點分析的延伸,換句話說,弱點分析為滲透測試的步驟之一

  

4. 為甚麼我們需要做滲透測試跟弱點掃描?

 

滲透測試?

滲透測試就跟健康檢查一樣,當我們面對各種駭客的問題,就如同面對生活中的病毒,我們需要定期的健康檢查去改善自身的安全。

若您的企業、網站有機密外洩、個資外洩等疑慮,或是開發完畢的新系統需要上線,又或者開發中的系統需要做局部安全測試,都適合導入滲透測試進行安全檢測。

對於企業來說資訊的安全跟客戶的信賴一定是比例的成長,所以滲透測試非常的重要。

弱點掃描?

雖然這一年來發生那麼多資安事件,但人們似乎並未從以往慘痛經驗中完全學會教訓。我們從Internet Storm Center在2003年11月15日的全球統計得知,Blaster攻擊所使用的Port 135依然有很高的數量。全球前十大Port使用量中,Slammer攻擊所使用的Port 1434依然有一定的數量。

(資料來源:Internet Storm Center)

  

(資料來源:Internet Storm Center)

此外安全漏洞被發現的數量,根據Bugtraq統計,幾乎要呈倍數成長,這表示有更多的漏洞可被駭客所利用,對於企業的威脅也更大。筆者舉Microsoft為例,至2003年11月止,Microsoft總共公佈51個重大安全漏洞(MS03-001 ~ MS03-051),如何即時修補這些漏洞,對於管理者而言是不小的負擔。

 

(資料來源:Bugtraq)

鑒於漏洞對國家安全與社會安定所可能造成的損害,因此針對弱點進行掃描並加以修補便成為現今企業最重要的資安防護工作之一,而SANS與美國FBI也共同合作提出很多常發生且重要的漏洞,提供企業參考

 

 註 : 所有的弱點利用之前都要取得同意 不然都是違法的

 

三、實作

1. Kali Linux - 滲透測試用的 Linux 發行版本

     就正面的用途來說,Kali Linux是可以用來測試公司網路會被駭客駭入和滲透的程度不過換個角度來說就是一個給駭客用的工具集!

     Kali Linux 內建就有預載已經分門別類好的近 300 套滲透測試工具可用,所以,幾乎駭客會用到的工具,Kali Linux 都有,而且會維護和更新!!!

 

 

 

 2. Nessus

      Nessus軟體是一套遠端弱點偵測掃瞄軟體,只要使用者能夠確認遠端主機的IP位址,它即能針對目標主機或網路進行安全評估。掃瞄結束後,Nessus能針對目標主機或網路安全弱點產生評估報告,並提供使用者包括:是否具有安全弱點或安全漏洞之訊息,以及提供安全弱點、安全漏洞之說明連結等。

Nessus 的優勢 

市場上有眾多的漏洞掃描軟體,但大部分使用者選擇 Nessus,因為: 

  • 高度精確的掃描和極低的誤報率
  • 最完整的掃描能力和功能
  • 可擴展到數百、數千個系統
  • 易於部署和維護低成本的管理和操作

 

 

重點!!!他是免費的!!!

kali :192.168.153.130 (Attacker)

Metasploitable :192.168.153.129 (Victim)

 

3. Metasploit

      在2003年Metasploit釋出之前,公開的攻擊程式(exploit)的狀態是破碎並且混亂的,研究人員各自以自己喜歡的語言及偏好的平台!每個攻擊程式之參數的習慣皆不相同,且很少有說明文件。

      在2003年Metasploit Framework發佈,並試圖改變這種情形。因此成為了以下攻擊程式型態:支援所有主要的作業系統選項設置與攻擊程式一致性介面將 payload與攻擊程式分開,因而能隨您喜歡地混和比對整合的編碼與規避功能具有容易更新之機制的統一攻擊程式資料庫。

實做DEMO

 

 

Metasploit因為提供了良好的擴充性,所以也可以成為安全研究人員研究弱點的工具。而且最重要的是,這是免費使用而且是Open Source的工具。 

雖然Metasploit比不上一些商業軟體,提供了高度自動化的滲透測試,但是相對來說彈性就更大。而且執行一個基本的測試,其實也不複雜,大概的流程如下: 

 

  1. 選擇已知的漏洞(Exploit)。
  2. 選擇目標(Target)。這裡所謂的目標並不是哪一台/群電腦設備,而是指定設備的作業系統。因為不同的作業系統有不同的弱點與攻擊方式。
  3. 選擇攻擊的指令內容(Payload)。
  4. 設定其他相關參數(Option)。
  5. 進行測試(Explotation)。有兩種方式,一種是Check,並不會實際進行攻擊行為,所以不會造成被攻擊電腦設備的損害,但是準確性不高,而且不是所有的弱點都可以用此方式加以測試。另外一種是Exploit,也就是真正進行攻擊的行為,不會有誤判的問題,但是不小心可能會把電腦設備搞掛。

 

當然在執行1之前,我們必須有可能被攻擊目標的清單。除了手動額外執行相關的偵測行為外,更方便的是可以透過與nmap/nessus整合的功能,直接將nmap/nessus檢測的結果作為後續檢測的資料來源。 

以下我用一個簡單的例子說明實際的操作方式(使用BackTrack 3.0就內建了Metasploit,而不需要自行安裝): 

 

  1. 使用msfconsole,進入後會顯示版本與其他相關資訊。除了msfconsole外,也提供了msfweb(透過瀏覽器操作)。另外還有msfcli,可以與其他script結合而達到自動化。基本上我喜歡打指令的方式,不過msfweb有搜尋的功能,這部分在msfconsole上並沒有提供。鍵入help可以看到所有的指令。
  2. 選擇Exploits,在例子中我們使用ms04-11 (use windows/smb/ms04_11_lsass) 這個漏洞。這個漏洞主要針對Microsoft Windows 2000與早期的Microsoft Windows XP版本。執行後提示符號也改成相對應的文字。
  3. 查詢包含此漏洞的作業系統 (show targets)。
  4. 設定目標為Microsoft Windows 2000 (set target 1),此主機是我為了測試特別安裝的系統。如果不確定其作業系統,可以設定為自動偵測 (0)。不過我在實際的執行上,發現並不是100%準確,而有時候會影響到測試的結果。
  5. 選擇攻擊的指令,在範例中我們選擇建立一個tcp的連線,並開啟一個shell (set PAYLOAD windows/shell/bind_tcp)。
  6. 查詢其他相關所需的參數 (show options),有些參數為必須設定(Required欄位為yes),有些則可由使用者自行決定。此漏洞需要指定被攻擊電腦設備的IP位址(RHOST),我們設定為192.168.0.14 (set RHOST 192.168.0.14)。
  7. 進行實際的攻擊(exploit),顯示攻擊成功後開啟遠端作業系統的shell。
  8. 執行ipconfig(遠端作業系統的指令),顯示確實為192.168.0.14這台電腦設備。

 

當然,Microsoft Windows 2000是很早期的作業系統,在一般的環境下比較少見了。但是Microsoft Windows XP SP3呢?大概還是目前佔有率最高的作業系統。同樣透過Metasploit,我們可以攻擊Microsoft Windows XP SP3相關的漏洞。

 

 

  1. 使用msfconsole,進入後會顯示版本與其他相關資訊。除了msfconsole外,也提供了msfweb(透過瀏覽器操作)。另外還有msfcli,可以與其他script結合而達到自動化。
  2. msfweb有搜尋的功能,這部分在msfconsole上並沒有提供。鍵入help可以看到所有的指令。
  3. 選擇Exploits,在例子中我們使用ms04-11 (use windows/smb/ms04_11_lsass) 這個漏洞。這個漏洞主要針對Microsoft Windows 2000與早期的Microsoft Windows XP版本。執行後提示符號也改成相對應的文字。
  4. 查詢包含此漏洞的作業系統 (show targets)。
  5. 設定目標為Microsoft Windows 2000 (set target 1),此主機是我為了測試特別安裝的系統。如果不確定其作業系統,可以設定為自動偵測 (0)。不過我在實際的執行上,發現並不是100%準確,而有時候會影響到測試的結果。
  6. 選擇攻擊的指令,在範例中我們選擇建立一個tcp的連線,並開啟一個shell (set PAYLOAD windows/shell/bind_tcp)。
  7. 查詢其他相關所需的參數 (show options),有些參數為必須設定(Required欄位為yes),有些則可由使用者自行決定。此漏洞需要指定被攻擊電腦設備的IP位址(RHOST),我們設定為192.168.0.14 (set RHOST 192.168.0.14)。
  8. 進行實際的攻擊(exploit),顯示攻擊成功後開啟遠端作業系統的shell。
  9. 執行ipconfig(遠端作業系統的指令),顯示確實為192.168.0.14這台電腦設備。

參考資料:

http://www.ringline.com.tw/epaper/bug.htm

http://devco.re/services/penetration-test

http://www.informationsecurity.com.tw/article/article_detail.aspx?aid=6590

http://blog.yilang.org/2013/01/ptpt.html