2017-2018-2 20179202《網絡攻防技術》第五周作業
漏洞分析之數據庫評估(一)
BBQSQL
一種用Pyhthon寫的SQL盲註框架。當發動QL註入漏洞攻擊時,它將非常有用。BBQSQL是半自動工具,允許許多難以觸發的SQL註入變得用戶化。BBQSQL最重要的是它不關心數據或數據庫。
DBPwAudit
功能:通過掛載字典對目標數據庫進行密碼暴力猜解,目前支持的數據庫包括SQLServer、MySQL、Oracle、DB2
破解SQLServer數據庫命令實例:
./dbpwaudit -s IP -d master(數據庫名稱) -D mssql(數據庫類型) -U username(字典) -P password(字典)
破解MySQL數據庫命令實例:
./dbpwaudit -s IP -d MySQL(數據庫名稱) -D mysql(數據庫類型) -U username(字典) -P password(字典)
HexorBase
圖形化的密碼破解與連接工具,支持MySQL、Oracle、PostgreSQL、SQLite和SQL Server五大主流數據庫。它允許安全人員指定用戶字典和密碼字典,然後實施字典攻擊。同時,它還提供對應的圖形界面客戶端,允許安全人員使用破解出的用戶名和密碼,對數據庫進行遠程管理。
jSQL
jSQL是一款Java開發的輕量級遠程服務器數據庫註入漏洞測試工具,且免費、開源、跨平臺 (Windows, Linux, Mac OS X, Solaris)。將存在註入漏洞的URL貼進去即可進行響應的漏洞利用。
MDBTools
包括MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具
Oracle Scanner
OScanner 是基於Java開發的一個Oracle評估框架。它有一個基於插件的架構並附帶幾個插件,目前可以實現:
- Sid枚舉
- 密碼測試(常見&字典)
- 枚舉Oracle版本
- 枚舉賬號權限
- 枚舉賬號哈希
- 枚舉審計信息
- 枚舉密碼策略
- 枚舉數據庫鏈接
SIDGuesser
針對Oracle的SID進行暴力枚舉的工具。
SID為Oracle實例名,Oracle連接字符串,通過實例名+用戶+密碼連接。當用戶希望遠程連接Oracle數據庫時,則需要知道SID、用戶名、密碼及服務器的IP地址。
sqldict
SQLdict是一個Windows程序,是一款用戶名密碼枚舉工具,運行時會自動調用Kali Linux內置的Wine組件。滲透測試人員只要指定目標IP地址、賬戶名和密碼字典,就可以實施密碼爆破。
漏洞分析之數據庫評估(二)
tnscmd10g
允許向Oracle數據庫註入數據。
Sqlsus
一個開放源代碼的MySQL註入和接管工具,sqlsus使用perl編寫,基於命令行界面。Sqlsus可以獲取數據庫結構,註入自己的SQL語句,從服務器下載文件,爬行web站點可寫目錄,上傳和控制後門,克隆數據庫等。最好用的兩點就是註射獲取數據速度非常快,另外一個最大的特點就是自動搜索可寫目錄。
使用時,首先使用sqlsus -g test.conf
生成一個配置文件。在配置文件中,設置註入路徑以及註入的各項參數,如修改our $url_start = “”
,引號裏寫入輸入註入點。然後使用sqlsus test.conf
命令加載該文件,實施滲透測試(get databases
獲取數據庫,set database
設定數據庫,get tables
獲取表)。
sqlninja
一款Perl編寫的一個專門針對microsoft SQL server的SQL註入工具,和市面上其他的註入工具不同,sqlninja沒有將精力用在跑數據庫上,而是側重於獲得一個shell。
Sqlmap
SQLMAP是一個開源的滲透測試工具,它主要用於自動化的偵測和實施SQL註入以及滲透數據庫服務器,SQLMAP配有強大的偵測引擎,適用於高級滲透測試用戶,不僅可以獲得不同數據庫的指紋信息,還可以從數據庫中提取數據,此外還能夠處理潛在的文件系統以及通過帶外數據連接執行系統命令等。
接下裏借助註入點進行更進一步的利用。上述命令後加--dbs
,會列出有權查看的數據庫。
上述命令後加--users
枚舉所有用戶。加--users --pass
枚舉所有用戶和密碼hash,在以後更進一步的攻擊中可以對密碼hash進行破解。加--current-db
查看當前數據庫為dvwa。加--current-user
查看當前用戶為root。
sqlmap -u "http://192.168.199.139/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie=‘PHPSESSID=f5b40ff6909924c340680b1ef9314d27;security=low‘ --tables -D dvwa
命令嘗試枚舉DVWA數據表。參數選項如下:
-u : 指定目標URL
-D : 要枚舉的數據庫
–-tables: 枚舉數據庫中的數據表
得到結果如下:
Database: dvwa
[2 tables]
+-----------+
| guestbook |
| users |
+-----------+
sqlmap -u "http://192.168.199.139/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie=‘PHPSESSID=f5b40ff6909924c340680b1ef9314d27;security=low‘ --columns -T users -D dvwa
命令獲取用戶表的列。參數選項如下:
-T : 要枚舉的數據庫表
–-columns : 枚舉數據庫表中的所有列
得到結果如下:
Database: dvwa
Table: users
[6 columns]
+------------+-------------+
| Column | Type |
+------------+-------------+
| user | varchar(15) |
| avatar | varchar(70) |
| first_name | varchar(15) |
| last_name | varchar(15) |
| password | varchar(32) |
| user_id | int(6) |
+------------+-------------+
漏洞分析之Web應用代理
通過應用代理工具分析數據包,或修改數據包重放、暴力攻擊等在WEB安全測試中經常用到。
Burp Suite
用於攻擊web應用程序集成平臺。Burp Suite 通過默認端口8080上運行,使用這個代理,可以截獲並修改從客戶端到web應用程序的數據包。
Proxy代理模塊作為BurpSuite的核心功能,攔截HTTP/S的代理服務器,作為一個在瀏覽器和目標應用程序之間的中間人,允許你攔截,查看,修改在兩個方向上的原始數據流。首先建立代理監聽(Proxy–> Options功能下),可以看到默認值127.0.0.1,端口8080(可以點擊Edit進行修改,或者添加新的監聽端口)。然後打開瀏覽器,點擊Preferences->Privacy->Advanced->Network->Settings,設置HTTP代理和端口。
訪問要測試的應用(如訪問百度),在 Proxy –> Intercept 標簽頁,Intercept is on
確保截獲功能開啟(如果不需要一個一個包地中斷,可以off,但是所有流量仍然可以在Http History
看到),就可以看到所有的請求。
點擊Forward發送修改後的請求,如果不想發送某些請求點擊Drop。對於抓到的包點擊右鍵或者Action
按鈕進行修改和利用。
Http History 選項顯示所有請求產生的細節,顯示目標服務器和端口,Http方法,URL,以及請求中是否包含參數或被人修改,Http的相應狀態嗎,響應字節大小,響應的MIME類型,請求資源的文件類型,HTML頁面的標題,是否使用ssl,遠程IP地址,服務器設置的cookie,請求的時間。
OwaspZAP
攻擊代理,是一款查找網頁的應用程序漏洞綜合滲透測試工具。包含攔截代理,被動處理,暴力破解,端口掃描,以及蜘蛛搜索等功能。OwaspZAP為會話類調試工具,調試功能對網站不會發起大量請求,對服務器影響較小。
OwaspZAP像Burp suite一樣使用代理的方式來截取網站。
點擊 Tools->Local proxy 設置相關選項。
在Firefox中設置代理。訪問後在ZAP中出現了Sites。
paros proxy
一個對Web應用程序的漏洞進行評估的代理程序,即一個基於Java的web代理程序,可以評估Web應用程序的漏洞。它支持動態地編輯/查看 HTTP/HTTPS,從而改變cookies和表單字段等項目。它包括一個Web通信記錄程序,Web圈套程序(spider),hash 計算器,還有一個可以測試常見的Web應用程序攻擊(如SQL註入式攻擊和跨站腳本攻擊)的掃描器。該工具檢查漏洞形式包括:SQL註入、跨站點腳本攻擊、目錄遍歷等。
WebScarab
一款代理軟件,包括HTTP代理,網絡爬行、網絡蜘蛛,會話ID分析,自動腳本接口,模糊測試工具, WEB格式的編碼/解碼,WEB服務描述語言和SOAP解析器等功能模塊。WebScarab基於GNU協議,使用Java編寫,是WebGoat中所使用的工具之一。
Vega
Vega是一個開放源代碼的web應用程序安全測試平臺,Vega能夠幫助你驗證SQL註入、跨站腳本(XSS)、敏感信息泄露和其它一些安全漏洞。 Vega使用Java編寫,有GUI,可以在Linux、OS X和windows下運行。Vega類似於 Paros Proxy, Fiddler, Skipfish and ZAproxy。
漏洞分析之BurpSuite
Burp Suite是一個Web應用程序集成攻擊平臺,它包含了一系列burp工具,這些工具
之間有大雖接口可以互相通信,這樣設計的目的是為了促進和提高整個攻擊的效率。平臺中
所有工具共享同一 robust 框架,以便統一處理HTTP請求,持久性,認證,上遊代理,日誌
記錄,報帑和可擴展性。
Burp Suite 允許攻擊者結合手工和自動技術去枚舉、分析、攻擊Web應用程序。這些
不冋的burp工具通過協同工作,有效的分享信息,支持以某種工具中的信息為基礎供另一
種工具使用的方式發起攻擊。
Proxy提供一個直觀、友好的用戶界面,它的代理服務器包含非常詳細的攔截規則,井
能準確分析HTTP消息的結構與內容Spide爬行蜘蛛工具可以用來抓取目標網站,以顯示網站的內容,基本結構和其他功能
當瀏覽Web應用時,spider會從HTML響應內容中主動生成一份URL列表,然後嘗試連接URL。首先點擊Target–> Site Map標簽,然後右鍵域名,選擇“Add To Scope”:
- Scanner Web應用程序的安全漏洞進行自動發現工具。它被設計用於滲透測試,並密
切與現有的技術和方法,以適應執行手動和半自動化的Web應用程序滲透測試 - Repeater 可手動重新發送單個HTTP請求
- Intruder 是burp套件的優勢,提供一組特別有用的功能。它可以自動實施各種定制攻擊,包括資源枚舉、數據提収、模糊測試等常見漏洞等。在各種有效的掃描工具中,它能
夠以最細化、最簡單的方式訪問它生產的請求與響應,允許組合利用個人智能與該工具的控
制優點。 - Sequencer 對會話令牌,會話標識符或其他出於安全原因需要隨機產生的鍵值的可預測
性進行分析。 - Decoder 轉化成規範的形式編碼數據,或轉化成各種形式編碼和散列的原始數據。它能
夠智能識別多種編碼格式,使用啟發式技術。 - Comparer 執行比較數據之間的任何兩個項目(一個可視化的“差
異”)。在攻擊一個Web應用程序的情況下,這一要求通常會出現當你想快速識別兩個應用
程序的響應之間的差異(例如,入侵者攻擊的過程中收到的兩種反應之間之間,或登錄失敗
的反應使用有效的和無效的用戶名)之間,或兩個應用程序詰求(例如,確定不同的行為引
起不同的請求參數)
漏洞分析之Fuzz工具
Fuzz工具是一個模糊測試工具。模糊測試是一種介於完全的手工滲透測試與完全的自動化測試之間的安全性測試類型,是一種通過向目標系統提供非預期的輸入並監視異常結果來發現軟件漏洞的方法。測試的基本思想就是通過向程序中輸入大量的隨機數據,然後觀察輸入這些數據之後程序的情況,記錄下使程序發生異常的數據,從而判斷程序是在那些地方發生了異常。 簡言之,就是發送一連串可能畸形的數據包,嘗試使程序報錯,從而進行判斷。
Bed.pl
Bed是一個純文本協議的Fuzz工具,能夠檢查常見的漏洞,如緩沖區溢出,格式串漏洞,整數溢出等。BED通過加載插件,向目標主機發送攻擊數據。如果發現目標無法響應,說明目標可能存在溢出區漏洞。經過多次測試驗證,就可以判斷漏洞出現的位置。然後通過手工執行驗證,代碼審核、反編譯等方式,就可以找出漏洞具體觸發機制,從而加以利用。
-s 插件(針對不同的協議使用不同的插件)
-t 目標IP地址
-p 目標端口
-o timeout
ohrwurm
一個迷你的對RTP的fuzz工具,主要針對SIP通信的fuzz
PowerFuzzer
Wfuzz
針對WEB應用的模糊測試工具,可以進行web應用暴力猜解,也支持對網站目錄、登錄信息、應用資源文件等的暴力猜解,還可以進行get及post參數的猜解,sql註入、xss漏洞的測試等。所有功能依賴於字典。
wfuzz基於一個非常簡單的概念:它用一個給定的payload來替換相應的FUZZ關鍵詞的值,我們稱FUZZ這樣的關鍵詞為占位符。一個wfuzz中的payload就是一個輸入的源。wfuzz -e payloads
命令可以得到所有可用的payload列表。
XSSer
XSSer專門針對XSS漏洞,主要是對一個頁面或點進行xss測試,判斷是否有XSS的漏洞。
依舊使用metasploitable2-linux自帶的DVWA為例,點擊 XSS reflected進行設置,並復制cookie值。
復制網址,使用命令xsser -u "http://192.168.199.139/dvwa/vulnerabilities/xss_r/?name=" --cookie="PHPSESSID=5218b113a4e6973859317eae876db9d3;security=low" -v
測試是否存在xss漏洞
XSSer參數較多,請使用--help
查看。XSSer使用起來不是那麽簡單方便,但可以作為第三方調用,在腳本中借助XSSer可以完成一系列的測試,會讓代碼對網站的測試更高效。
課本內容
1. web應用程序安全攻防
1.1 web應用程序體系結構及其安全威脅
1.1.1 web應用體系結構
- 三層架構包括表示層、業務邏輯層、數據層
- web應用體系結構包括瀏覽器、web服務器、web應用程序、數據庫、傳輸協議http/https
1.1.2 web應用安全威脅
- 針對瀏覽器和終端用戶的Web瀏覽安全威脅
- 針對傳輸網絡的網絡協議安全威脅
- 系統層安全威脅
- Web服務器軟件安全威脅
- Web應用程序安全威脅
- Web數據安全威脅
1.2 web應用安全攻防技術概述
1.2.1 web應用的信息收集
- 手工審查web應用程序結構與源代碼 ?靜態和動態生成的頁面
- 目錄結構,經典工具whisker
- 輔助性文件
- 輸入表單
- 查詢參數字符串
- 自動下載與鏡像web站點頁面
- linux下工具:Lynx、wget
- Windows上工具:Teleport Pro、Offline Explorer
- 替代工具:迅雷、Flashget
- 使用Google Hacking技術審查與探測Web應用程序
- Web應用程序安全評估與漏洞探測
1.2.2 攻擊web服務器軟件
web服務器平臺中的安全漏洞主要分為如下幾類:
- 數據驅動的遠程代碼執行安全漏洞
- 服務器功能擴展模塊漏洞
- 樣本文件安全漏洞
- 源代碼泄露
- 資源解析攻擊
1.2.3 攻擊web應用程序
Web應用程序安全威脅從攻擊技術角度分為如下6類:
- 針對認證機制的攻擊
- 授權機制的攻擊
- 客戶端攻擊
- 命令執行攻擊(包括緩沖區溢出、格式化字符串、LDAP註入、操作系統命令註入、SQL註入、SSL註入)
- 信息暴露
- 邏輯攻擊(包括功能濫用、拒絕服務攻擊、對抗自動程序不完善、處理驗證過程不完善等)
1.2.4 攻擊web數據內容
- 安全敏感數據泄漏
- 網站篡改
- 不良信息內容上傳
1.2.5 web應用安全防範措施
Web站點網絡傳輸安全設防措施:
- 盡量使用HTTPS來保障Web站點傳輸時的保密性、完整性與身份真實性,至少對登陸過程進行加密保護
- 通過加密的連接通道來管理Web站點
- 對關鍵的Web服務器,設置靜態綁定MAC-IP映射
Web站點操作系統及服務安全設防措施:
- 對Web站點的操作系統與服務器軟件進行及時的補丁更新
- 對Web站點服務器的操作系統及各種開放服務進行遠程安全漏洞掃描,在攻擊者利用安全漏洞實施攻擊之前發現和修補這些安全漏洞
- 采用提升系統與服務安全性的一般性設防措施
Web應用程序安全設防措施:
- 提高安全認識,開發時兼顧安全性、訪問性能與便捷性
- 使用具有良好安全聲譽及穩定技術支持力量的web應用軟件包
- 只在必要時候自主或外包開發web應用程序
- 使用web服務器軟件提供的日誌功能
Web站點數據安全設防措施:
- 提高網站內容維護人員的數據安全意識
- 對維護網站的數據安全實施日常監測和防護
1.3 SQL註入
根據目標的不同分為:
- 惡意讀取、修改與操縱數據庫的SQL註入攻擊,是最常見也是較為直觀的一種攻擊技術
- 在Web服務器端安裝、執行Webshell等惡意腳本的PHP註入或ASP註入攻
- 在Web服務器端惡意執行操作系統命令的Shell註入攻擊
- 其他多種多樣的攻擊如LDAP註入、郵件命令註入
1.4 xss跨站腳本攻擊
與代碼註入攻擊不同的是,其最終目的不是提供服務的Web應用程序,而是使用Web應用程序的用戶。
1.4.1 XSS攻擊技術原理
與代碼註入類似,XSS攻擊的根源同樣是Web應用程序對用戶輸入內容的安全驗證與過濾不夠完善。
1.4.2 XSS攻擊類型
兩種主要的XSS漏洞類型:
- 持久性XSS漏洞(也稱作存儲型XSS漏洞,是危害最為嚴重的XSS漏洞)
- 非持久性XSS漏洞(也稱為反射XSS漏洞)
- 除了傳統的服務器端Web應用程序中存在的XSS漏洞及相應攻擊之外,安全業界又發現了一種在客戶端代碼中存在的XSS漏洞及攻擊技術,被稱為基於DOM的XSS。
1.4.3 xss攻擊
在SEED實驗環境中的phpBB論壇程序中引入了XSS安全漏洞,存在於posting.php與viewtopic.php文件中,
針對這一漏洞,我們可以通過如下步驟來測試於利用該漏洞,實施用戶會話Cookie竊取、假冒、甚至XSS蠕蟲攻擊:
- 測試XSS漏洞
- 顯示用戶的會話Cookie
- 竊取用戶的會話Cookie
- 利用Cookie信息假冒其他用戶發表與修改帖子
- 編寫實現XSS蠕蟲。
1.4.4 XSS攻擊防範措施
對XSS跨站腳本的防範分為服務器端和客戶端兩個方面。
- 服務器端防範措施:①輸入驗證②輸出凈化③消除危險的輸入點。
- 客戶端防範措施:提升瀏覽器的安全設置。
1.4.5 web瀏覽器安全攻防
- 軟件安全困境三要素:復雜性、可擴展性、連通性。瀏覽器軟件面臨著嚴重的威脅。
- 網頁木馬存在的技術基礎:Web瀏覽端安全漏洞。
- 網頁木馬的本質核心——瀏覽器滲透攻擊。
- 網頁掛馬機制,最主要的有如下四類策略:內嵌HTML標簽、惡意Script腳本、內嵌對象連接、ARP欺騙掛馬。
- 網頁木馬的檢測與分析方法:基於特征碼匹配的傳統檢測方法、基於統計與機器學習的靜態分析方法、基於動態行為結果判定的檢測分析方法、基於模擬瀏覽器環境的動態分析檢測方法、網頁木馬檢測分析技術綜合對比。
2.Web瀏覽器安全攻防
2.1 web瀏覽器安全威脅
Web瀏覽器軟件安全困境三要素:復雜性、可擴展性、連通性。
Web安全威脅位置
- 傳輸網絡的網絡協議安全威脅
- Web瀏覽端系統平臺的安全威脅
- Web瀏覽器軟件及插件程序的滲透攻擊威脅
- 互聯網用戶社會工程學攻擊威脅
2.2 Web瀏覽端滲透攻擊威脅——網頁木馬
本質核心:利用腳本語言實現對web瀏覽端軟件安全漏洞的滲透攻擊,從而向客戶端主機中植入惡意程序。
防範:提升操作系統與瀏覽端平臺軟件的安全性。
2.3 網絡釣魚(phishing)
網絡釣魚是社會工程學在互聯網中廣泛實施的一種典型攻擊方式。
原理:通過大量發送聲稱來自於銀行或其他知名機構的欺騙性垃圾郵件,意圖引誘收信人給出個人敏感信息。
普遍技術流程:
- 攻擊者掃描網段,尋找存有漏洞的服務器;
- 服務器被攻陷,並被安裝一個rootkit或口令保護的後門工具;
- 攻擊者從加密的後門工具獲得對服務器的訪問權,並下載已經構建完畢的釣魚網站內容,進行一些網站搭建配置與測試工作,使得釣魚網站上線運行;
- 攻擊者下載群發電子郵件工具,並大規模散發垃圾郵件;
- 網頁瀏覽的流量開始到達釣魚網站,受害者訪問並給出個人敏感信息,攻擊者通過後臺腳本收集這些信息。
防範:增強安全意識、提高警惕性。
2017-2018-2 20179202《網絡攻防技術》第五周作業