網路掃描及 應用程式弱點掃描140.125.45.29/courses/files/information...

61
網路掃描及 應用程式弱點掃描 技術與應用 1 授課講師:許雅婷 日期: 2015/10/27

Upload: others

Post on 22-Dec-2019

14 views

Category:

Documents


0 download

TRANSCRIPT

網路掃描及應用程式弱點掃描技術與應用

1

授課講師:許雅婷日期:2015/10/27

課程大綱

• 網路掃描

– 簡介

– 網路掃描技術與方法

– 防禦對策

– 工具介紹與實務

• 弱點掃描

– 簡介

– 弱點掃描技術與方法

– 工具介紹與實務

2

網路掃描.簡單說

• 協助了解目標主機所在的網路、作業系

統及可能的服務與應用軟體的況狀

• 是一把雙面刃,可用於網路管理

通常也是惡意攻擊的第一步-刺探敵情!

3

掃描網路上的目標

查出主機上運行的服務

查出主機作業系統及版本

網路掃描.你應該要知道的

• 透過掃描技術,可知道網段中各種TCP/IP port

的分配與開啟狀態、使用者所開放的服務、服

務軟體版本及作業系統資訊

• 可能透露出目標主機所存在的安全問題

4

5

PortNumber 名稱 說明

20 ftp-data ftp資料連接埠

21 ftp 檔案傳輸協定(ftp)連接埠

22 ssh Secure Shell

23 telnet Telnet

25 smtp Simple Mail Transfer Protocol

53 domain 網域名稱服務

69 tftp TFTP

80 http www 服務

110 pop3 mail 通訊協定

Well-known ports

6

PortNumber 名稱 說明

115 sftp 安全的檔案傳輸協定

123 ntp 網路時間協定

137 netbios-ns netbios 名稱服務

138 netbios-dgm netbios資料包服務

139 netbios-dgm netbios工作階段服務

143 imap 網際網路訊息存取協定

443 https https

445 microsoft-ds 透過tcp/ip的smb

1433 ms-sql-s ms sql server

Well-known ports

7

PortNumber 名稱 說明

3306 mysql mysql server

3389 rdp windows 遠端桌面

8080 http www 服務

8443 https https

Well-known ports

網路掃描技術與方法

• 主要步驟與方法– Ping掃描,探測主機存活狀態– 資料蒐集

• port掃描• 作業系統掃描• 防火牆保護• 監聽或運行的服務

– 根據得到資訊進行目標系統的分析與檢測

8

Ping Scan

• ICMP Echo

– 對目標發送ICMP Echo Request 封包,等待ICMP Echo Reply的封包

• Broadcast ICMP

– 利用ICMP廣播探測網路範圍內的主機,網路中的上線主機將會予以回應。但此種掃描僅適用於UNIX/Linux系统

9

Port Scan

• 解析port所提供的服務並嘗試取得相關資訊

• 不提供進入系統的功能

• 主要可區分為兩類:

– TCP

• 全連接掃描技術

• 半連接掃描技術

– UDP

10

TCP Connect Scan

• 嘗試透過TCP/IP的三方交握(Three Way

Handshaking)與目標主機的指定port建立連結

11

Port open Port close

TCP Half Open Scan

• 與目標主機的port成功連接後,僅完成前

兩次交握,在第三步時,掃描主機便中斷

連接,使連接沒有完全建立起來

• 半連接掃描嘗試進行連線在對方主機留下

的記錄較少,某些安全機制較不嚴謹的目

標主機,甚至不容易留下掃描記錄

12

TCP Half Open Scan

• 範例:SYN Scan

13

UDP Scan

• TCP port並不輕易開放,取而代之的就是UDP掃描

• 相較於TCP掃描,UDP掃描較費時,精準度也較低

• 對UDP port發送封包

• 若port為開啟,不會有任何回應

• 若port為關閉,回應ICMP port unreachable

14

Port open Port close

如何辨識 OS

• 作業系統處理TCP/IP堆疊(TCP Protocol Stack)

存在不同的特性,即依此作為作業系統的「指紋(Fingerprint)」,藉以分析作業系統的類型和版本

15

常見的OS指紋辨識技術

• TCP FIN封包探測

• BOGUS旗標探測

– 在SYN封包的TCP標頭中設定一個未定義的TCP旗標,Linux在2.0.35版之前的Kernel會在回應封包中保持這個旗標,而其他類型作業系統則不會有任何回應

• TCP ISN取樣(sampling)

– 透過目標系統回應連線需求時,找出TCP連接啟始化序號碼的特徵,以此判斷其作業系統類型

16

常見的OS指紋辨識技術(續)

• ICMP錯誤訊息抑制(Error Message Quenching)

– 對目標主機發送一連串封包,統計出一段時間內收到的ICMP unreachable封包,與作業系統的預設值做比較,即可辨認出作業系統類型與版本

• TCP選項(options)探測

– 許多作業系統對於TCP選項為選擇性採用,透過對這些差別的比對即可辨認出其類型

17

網路掃描.防禦對策

• 關閉不使用的服務埠(service port),減少威脅與被探測的風險

• 根據掃描的結果更正網路安全漏洞和系統中的錯誤配置

• 搭配防火牆及入侵檢測系統

18

• 網路掃描軟體:

– Nmap、Saint 、 ISS及CyberCop Scanner….etc

• 廣泛被使用於網路世界中的網路掃描工具為Nmap

• Nmap (https://nmap.org)

– Network Mapper(Nmap)由Fyodor Vaskovich所開發,為一套網路探勘的開放原始碼軟體

– 可跨平台使用,有免費授權版本

– 支援多種協定的掃描

19

工具介紹

Nmap操作實務

• Latest release self-installer:

nmap-6.49BETA5-setup-xp.exe

• 順便安裝Winpacp軟體

20

Nmap操作實務-Traceroute

• 從本機到目標主機,經過哪些網路設備

21

Nmap操作實務-Ping Scan

• 確認目標主機是否為上線狀態

• 可為某個特殊網段:10.0.1.0/24

22

Nmap操作實務-Port Scan

• 得到目標主機所開啟port之資訊

• 可列出對應的網路服務類型以及其軟體版本之資訊

• 參數:

• -P:掃描port的範圍-A:目標主機作業系統,軟體版本偵測

23

進階功能介紹 –自訂掃描

• 可調整的許多掃瞄的參數,例如使用 Ack Scan、Syn Scan、取得作業系統、服務版本等等,適當的進階功能參數調整,可以得到較齊全的資訊。

24

進階功能介紹 –腳本

• NSE Scripts 為 Nmap的腳本引擎,是目前Nmap的最強大的特色,藉由執行這些腳本可以完成各種各樣的自動化任務。

• 使用者本身也可以撰寫自己所需要的腳本,來滿足任務的需求。

25

中場休息

26

• 檢查網路、應用程式或作業系統的安全性

• 模擬攻擊者所發出的攻擊動作,以無傷害性的攻擊去找出可能的弱點

• 根據「弱點特徵資料庫」來進行檢查

• 提供弱點修補資訊建議

27

弱點掃描.簡單說

何謂弱點

• 任何會導致應用程式、系統、設備或服務出現問題的地方,例:失去保密性、資料完整性或可用性的一些bug、缺陷、行為、程序或事件,都可被定義為弱點

• 程式與網路架構上的安全弱點

– 因設計不良,導致攻擊者可藉由惡意操作,進行非原來系統設計原意的行為,進而對系統安全造成危害

– 弱點可能提供攻擊者可以阻斷服務或提升權限

28

怎麼製造弱點?

• 設計階段(Design Phase)

–脆弱的演算法,或設計時未考慮到的問題

• 實作階段(Implementation Phase)

–因疏忽或是錯誤所造成的軟體問題

• 操作階段(Operation Phase)

–使用者操作與設定習慣不良

• 人性弱點(Human Nature)

–人性上的弱點所導致

29

怎麼製造弱點?(設計階段)

• 脆弱的演算法(Weak algorithm)

–設計時忽略的項目

–未考慮到的問題

• 設計錯誤(Design error )

30

怎麼製造弱點? (實作階段)

• 輸入驗證的錯誤(Input validation error)

– 沒有檢查輸入值的資料

– 例:SQL Injection

• 界限(範圍)檢查的錯誤(Boundary check error)

– 未正確檢查傳入資訊的長度,導致緩衝區溢位(Buffer Overflow)或程式計算錯誤

• 競爭情況(Race condition)

– 指多個行程(Process)並行存取共用資源,系統若做好排程將可能造成資源內的資料不正確

31

怎麼製造弱點?(操作階段)

• 錯誤的設定與疏忽

– 例:未正確設定檔案權限,導致攻擊者可以存取隱私資訊相關檔案

• 對於設定的知識不足

32

怎麼製造弱點? (人性弱點)

• 脆弱的密碼(Weak Passwords)

– 密碼與使用者帳號相同

– 生日或學號

– 太過簡單的密碼

• 例: 12345

• 不良的使用習慣(Unsafe habits)

– 將密碼告訴別人

– 寫下貼在桌面上

33

34

NEWS :http://buzzorange.com/techorange/2015/10/21/hacker/

• 透過預先載入的系統漏洞資訊

• 對目標資訊設備進行模擬攻擊

• 弱點掃描的4個階段:

35

主機探索連接埠掃

描系統服務確認

漏洞檢測產出安全評估報告

弱點掃描技術與方法

發現弱點,然後呢?

• 面對眾多急待修補之弱點,如何利用有限的人力、資源、時間及技術進行修補呢?

• 弱點評估,對相對嚴重的弱點進行優先修補

36

等級 定義嚴重(Critical) 利用該弱點可以進行大量的散佈與感染,例:網蟲的行為

重要(Important) 利用該弱點可能攻陷電腦;竊取使用者資訊或造成機敏資料外洩等

中度(Moderate) 該弱點的利用需在特定條件下,如:預設設定、不安全的設定、難以達成的參數等,如果沒有該特定條件配合,則弱點無法利用或可能減輕弱點的影響力

低(Low) 該弱點的利用是相當困難或影響較小的

5-37

通用弱點和漏洞 CVE編號• Common Vulnerabilities & Exposures

–訂定一個唯一的名稱

–提供一個標準的描述

–統一名稱,使評估報告更容易被理解與解讀

• CVE編號格式

– CVE-xxxx-xxxx (xxxx為四位數字):

–第一組數字表示年度

–第二組數字表示該年度被發現的序號

弱點掃瞄與滲透測試的差別

• 滲透測試

– 以駭客的角度來進行各種攻擊測試

– 會嘗試對目標進行各種攻擊

– 可能發現潛在的漏洞

• 弱點掃瞄

– 針對已知的弱點進行檢測

– 可藉由自動化的工具來大幅減少檢測的時間

– 無法檢測到新的資安漏洞

– 誤判率較高38

• 針對系統服務的弱點評估

– Nessus(http://www.tenable.com/products/nessus )

– Openvas( http://www.openvas.org/ )

– Nexpose(http://www.rapid7.com/products/nexpose/)

39

常見的弱點掃瞄程式

5-40

弱點掃描工具 - Nessus

• 受GPL保護的免費軟體

– 僅限家用版本免費

• 在1998年,由法國的Renaud Deraison發展

• 由3.0版本開始不提供原始碼

• 提供弱點特徵資料庫更新

– 免費下載版會慢7天更新弱點資料

• 針對Web 應用程式的弱點評估

– Acunetix (https://www.acunetix.com/ )

– WebInspect (http://www8.hp.com/us/en/software-

solutions/webinspect-dynamic-analysis-dast/)

– Vega ( https://subgraph.com/vega/ )

– W3af (http://w3af.org)

41

常見的弱點掃瞄程式(續)

網站弱點掃瞄

• 針對網站應用程式進行檢測

• 通常會針對以下相關問題進行探測:

– SQL injection

– Cross Site Script

– Web Server 版本弱點

–登入介面密碼檢測

42

工具介紹與實務-Acunetix

• Acunetix Web Vulnerability Scanner (AWVS)

• 商業用的網站弱點掃瞄軟體,

• 網頁爬蟲的方式進行網站基本的漏洞檢測

• 不定期的更新掃描引擎,增加掃描的準確度

• 可配合第三方的工具如:Burp Suite、Fiddler等來進行掃描。

• https://www.acunetix.com/vulnerability-scanner/

43

工具介紹與實務-WebInspect

• HP 旗下自動化動態檢測網站弱點掃瞄程式

• 模擬駭客攻擊手法

• 協助找出Web高度風險的漏洞

• 能找到傳統網站弱點掃瞄所掃不到的漏洞

• http://www8.hp.com/us/en/software-

solutions/webinspect-dynamic-analysis-dast/

44

• 開源的網頁應用程式弱點檢測工具

• 檢測超過200個以上的網頁漏洞

• 可找到網頁應用程式的弱點並且嘗試去利用

弱點來進行檢測

• 使用Python,可自行擴展

45

http://w3af.org/

工具介紹與實務-W3af

• Open Source 網站弱點掃瞄軟體

• 協助找到及驗證 SQL injection、XSS等弱點

• 可使用Proxy來協助做檢測

• 支援模組

Cross Site Scripting (XSS)SQL InjectionDirectory TraversalURL InjectionError DetectionFile UploadsSensitive Data Discovery…….

• https://subgraph.com 46

工具介紹與實務-VEGA

網站弱點掃瞄流程

47

確認掃瞄環境

選擇適當掃描方式

執行掃瞄

產生報告

確認掃瞄的範圍以及相關資訊收集

根據得到的相關資訊,選擇適當掃描範本

執行弱點掃瞄

將受測網站資訊及弱點名稱、類型、弱點描述、修補方案等資訊進行報告統整

Vega 掃描操作設定

48

1. 建立新的掃描

49

2. 輸入受測網站網址,http://foo.com/

50

3. 點選細項,可以選擇需要的檢測模組

51

4. 可以根據需求輸入Authentication Options

5. 點選Finish 開始掃瞄

掃描結果

52

Local File Include 風險

53

檢測到有弱點的網址

掃描報告判讀• 提供使用者進行判讀

• 提供弱點說明、修補建議等說明

• 分為高風險、中風險、低風險、資訊四種分級。

54

55

弱點之風險等級 意義

高風險 有立即資安風險

中風險 有間接資安風險

低風險建議修改

以增加安全性

資訊一般資訊層級的揭露

56

掃描結果風險

弱點名稱

57

弱點說明及相關參考資訊

58

測試參數資訊

檢測的語法

59

測試結果

• 應用系統錯誤

– 如在unix like server 上出現 IIS或MS-SQL

• 已修補的弱點

– Nessus利用banner判斷

– 已修補但banner未改變(在某些unix上會如此)

• 自行開啟的服務

– 自行對應web服務到10000/tcp

– 自行開發程式使用6007/tcp(通常為IRC後門使用)

60

可能的誤判情況

良心建議

• 嚴格的防火牆及入侵檢測系統(Intrusion

Detection System, IDS)通常會將網路掃描及弱點掃描視為一種惡意行為

• 最好事先徵求相關資安人員同意,以免封包受到入侵檢測系統或防火牆的阻擋而影響判斷結果

61