網路掃描及 應用程式弱點掃描140.125.45.29/courses/files/information...
TRANSCRIPT
網路掃描.簡單說
• 協助了解目標主機所在的網路、作業系
統及可能的服務與應用軟體的況狀
• 是一把雙面刃,可用於網路管理
通常也是惡意攻擊的第一步-刺探敵情!
3
掃描網路上的目標
查出主機上運行的服務
查出主機作業系統及版本
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 Scan
• ICMP Echo
– 對目標發送ICMP Echo Request 封包,等待ICMP Echo Reply的封包
• Broadcast ICMP
– 利用ICMP廣播探測網路範圍內的主機,網路中的上線主機將會予以回應。但此種掃描僅適用於UNIX/Linux系统
9
TCP Half Open Scan
• 與目標主機的port成功連接後,僅完成前
兩次交握,在第三步時,掃描主機便中斷
連接,使連接沒有完全建立起來
• 半連接掃描嘗試進行連線在對方主機留下
的記錄較少,某些安全機制較不嚴謹的目
標主機,甚至不容易留下掃描記錄
12
UDP Scan
• TCP port並不輕易開放,取而代之的就是UDP掃描
• 相較於TCP掃描,UDP掃描較費時,精準度也較低
• 對UDP port發送封包
• 若port為開啟,不會有任何回應
• 若port為關閉,回應ICMP port unreachable
14
Port open Port close
常見的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
• 網路掃描軟體:
– 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操作實務-Port Scan
• 得到目標主機所開啟port之資訊
• 可列出對應的網路服務類型以及其軟體版本之資訊
• 參數:
• -P:掃描port的範圍-A:目標主機作業系統,軟體版本偵測
23
進階功能介紹 –腳本
• NSE Scripts 為 Nmap的腳本引擎,是目前Nmap的最強大的特色,藉由執行這些腳本可以完成各種各樣的自動化任務。
• 使用者本身也可以撰寫自己所需要的腳本,來滿足任務的需求。
25
何謂弱點
• 任何會導致應用程式、系統、設備或服務出現問題的地方,例:失去保密性、資料完整性或可用性的一些bug、缺陷、行為、程序或事件,都可被定義為弱點
• 程式與網路架構上的安全弱點
– 因設計不良,導致攻擊者可藉由惡意操作,進行非原來系統設計原意的行為,進而對系統安全造成危害
– 弱點可能提供攻擊者可以阻斷服務或提升權限
28
怎麼製造弱點?
• 設計階段(Design Phase)
–脆弱的演算法,或設計時未考慮到的問題
• 實作階段(Implementation Phase)
–因疏忽或是錯誤所造成的軟體問題
• 操作階段(Operation Phase)
–使用者操作與設定習慣不良
• 人性弱點(Human Nature)
–人性上的弱點所導致
29
怎麼製造弱點? (實作階段)
• 輸入驗證的錯誤(Input validation error)
– 沒有檢查輸入值的資料
– 例:SQL Injection
• 界限(範圍)檢查的錯誤(Boundary check error)
– 未正確檢查傳入資訊的長度,導致緩衝區溢位(Buffer Overflow)或程式計算錯誤
• 競爭情況(Race condition)
– 指多個行程(Process)並行存取共用資源,系統若做好排程將可能造成資源內的資料不正確
31
怎麼製造弱點? (人性弱點)
• 脆弱的密碼(Weak Passwords)
– 密碼與使用者帳號相同
– 生日或學號
– 太過簡單的密碼
• 例: 12345
• 不良的使用習慣(Unsafe habits)
– 將密碼告訴別人
– 寫下貼在桌面上
33
發現弱點,然後呢?
• 面對眾多急待修補之弱點,如何利用有限的人力、資源、時間及技術進行修補呢?
• 弱點評估,對相對嚴重的弱點進行優先修補
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
確認掃瞄環境
選擇適當掃描方式
執行掃瞄
產生報告
確認掃瞄的範圍以及相關資訊收集
根據得到的相關資訊,選擇適當掃描範本
執行弱點掃瞄
將受測網站資訊及弱點名稱、類型、弱點描述、修補方案等資訊進行報告統整
• 應用系統錯誤
– 如在unix like server 上出現 IIS或MS-SQL
• 已修補的弱點
– Nessus利用banner判斷
– 已修補但banner未改變(在某些unix上會如此)
• 自行開啟的服務
– 自行對應web服務到10000/tcp
– 自行開發程式使用6007/tcp(通常為IRC後門使用)
60
可能的誤判情況