1、漏洞分析之數據庫評估(一)
web層與數據庫連接的安全漏洞在安全測試中並不少見,kali中常用的數據庫評估軟件如下
1.1 BBQSQL
BBQSQL是一種用Pyhthon寫的SQL盲注框架。當發動狡猾的SQL注入漏洞攻擊時,它將非常有用。
BBQSQL也是半自動工具,允許許多難以觸發的SQL注入變得用戶化。該工具是與數據庫無關的,其用法非常靈活。
它也自帶一個直觀的UI用戶界面,使設置攻擊更容易。Python Gevent也很給力,使BBQSQL非常快速。
打開bbqsql后需要設置參數
下面這個網站有參數設置的介紹:http://www.nsoad.com/Security-tools/20161014/tools-557.html
1.2 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(字典)
1.3 HexorBase
該工具是少有的圖形界面工具,它支持MySQL、Oracle、PostgreSQL、SQLite和SQL Server五大主流數據庫。
它允許安全人員指定用戶字典和密碼字典,然后實施字典攻擊。
同時,它還提供對應的圖形界面客戶端,允許安全人員使用破解出的用戶名和密碼,對數據庫進行遠程管理。
1.4 jSQL
jSQL是一款Java開發的輕量級遠程服務器數據庫注入漏洞測試工具,且免費、開源、跨平台 (Windows, Linux, Mac OS X, Solaris)。
1.5 MDBTools
包括MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具
1.6 Oracle Scanner
OScanner 是基於Java開發的一個Oracle評估框架。它有一個基於插件的架構並附帶幾個插件,目前可以實現:
- Sid枚舉
- 密碼測試(常見&字典)
- 枚舉Oracle版本
- 枚舉賬號權限
- 枚舉賬號哈希
- 枚舉審計信息
- 枚舉密碼策略
- 枚舉數據庫鏈接
1.7 SIDGuesser
針對Oracle的SID進行暴力枚舉的工具。
SID為Oracle實例名,Oracle連接字符串,通過實例名+用戶+密碼連接。
使用方法:sidguess -i 192.168.1.205 -d /usr/share/wordlists/metasploit/unix_users.txt
參考資料:http://tools.kali.org/vulnerability-analysis/sidguesser
1.8 sqldict
一個用戶名密碼枚舉工具,通過Wine運行。
2、漏洞分析之數據庫評估(二)
2.1 tnscmd10g
允許給Oracle添加命令
2.2 Sqlsus
Sqlsus是一個開放源代碼的MySQL注入和接管工具,sqlsus使用perl編寫,基於命令行界面。
Sqlsus可以獲取數據庫結構,注入你自己的SQL語句,從服務器下載文件,爬行web站點可寫目錄,上傳和控制后門,克隆數據庫等等。
最好用的兩點就是注射獲取數據速度非常快,另外一個最大的特點就是自動搜索可寫目錄。
可使用的參數如下圖
- 生成配置文件:
sqlsus -g test.conf
- 編輯配置文件:修改
our $url_start = “”;
寫入地址。 - 啟動並且測試:
sqlsus test.conf
- 獲取數據庫數據:
sqlsus> get databases
- 查看全部數據庫名字:
[+] Getting databases names
- 設定數據庫:
sqlsus> set database database = “sql”
;sqlsus>set database mysql database = “mysql”
- 獲取表:
sqlsus>get tables [user:5] host user Password
2.3 Sqlninja
在sql注入方面一直尊sqlmap為神器,但sqlninja也有自己的特點。
Sqlninja是一款Perl編寫的一個專門針對Microsoft SQL Server的SQL注入工具。
沒有將精力用在跑數據庫上,而是側重於獲得一個shell。Sqlninja優點如下:
- 一個專門針對Microsoft SQL Server的sql諸如工具
- 可找到遠程SQL服務器的標志和特征(版本、用戶執行的查詢、用戶特權、xp_cmdshell的可用性、身份驗證模式等)
- “sa”口令的強力攻擊
- 如果找到口令后,就將特權提升到“sa”;
- 如果原始的xp_cmdshell被禁用后,就創建一個定制的xp_cmdshell;
- 使用純粹的ASCII GET/POST請求上載netcat.Exe程序,因此並不需要FTP連接;
- 為了找到目標網絡的防火牆所允許的端口,可以實施針對目標SQL服務器的TCP/UDP端口掃描;
- 逃避技術,這是為了使注入式代碼“模糊”不清,並且混淆、繞過基於簽名的IPS和應用層防火牆;
- 采用“盲目執行”攻擊模式,在其他模式失效時,可以用於發射命令並執行診斷;
- 在sqlninja生成的SQL代碼上,執行的是自動化的URL編碼,這使用戶可以更精細地控制漏洞利用的字符串;
- 如果得到權限為sa,可以結合msf進一步對目標主機進行滲透。
Sqlninja的參數:-m #指定攻擊模式,有以下參數:
- t/test #測試連接是否是注入點
- f/fingerprint #指紋識別,判斷用戶,數據庫,xp_cmdshell是否能用等等
- b/bruteforce #暴力破解sa密碼
- e/escalation #提權用,必須用-p指定sa的password,成功就會把當前數據庫用戶加入到sa組里面
- x/resurrectxp #嘗試恢復xp_cmdshell
- u/upload #使用get和post上傳二進制文件
- s/dirshell #獲得目標主機的shell
- k/backscan #查看開放的端口目標
- r/revshell #反彈回一個shell,和dirshell相反
- d/dnstunnel #指定使用dns作為傳輸通道
- i/icmpshell #當dirshell和revshell都失敗的情況下,可以用這個模式把shell藏在icmp里,但是先要上傳icmpsh.exe(在upload模式里)
- c/sqlcmd #以上方法都失敗之后,可以用他執行簡單的cmd命令,可惜的是沒回顯
- m/metasploit #使用meterpreter作為shell
-f #指定配置文件,sqlninja沒有類似sqlmap的"-u"參數,注入網址是寫在配置文件里的,默認是sqlninja.conf
在-f下面又有以下參數
- 0 - Database version (2000/2005) #檢測當前數據庫版本
- 1 - Database user #當前數據庫用戶
- 2 - Database user rights #當前數據庫用戶權限
- 3 - Whether xp_cmdshell is working #檢查xp_cmdshell是否可以用
- 4 - Whether mixed or Windows-only authentication is used #是否windows本地系統權限
- a - All of the above #以上所有選項
- h - Print this menu #顯示當前幫助菜單
- q - exit #退出
-p #sa賬戶密碼
注入網址寫在配置文件里,默認是Sqlninja.conf
參考資料:http://www.2cto.com/article/201310/247715.html
2.4 sqlmap
SQLMAP主要用於自動化地偵測和實施SQL注入攻擊以及滲透數據庫服務器。
其配有強大的偵測引擎,適用於高級滲透測試用戶,不僅可以獲得不同數據庫的指紋信息,還可以從數據庫中提取數據,
此外還能處理潛在的文件系統以及通過帶外數據連接執行系統命令等。
使用方法:
./sqlmap.py -u “注入地址” -v 1 –dbs
// 列舉數據庫./sqlmap.py -u “注入地址” -v 1 –current-db
// 當前數據庫./sqlmap.py -u “注入地址” -v 1 –users
// 列數據庫用戶./sqlmap.py -u “注入地址” -v 1 –current-user
// 當前用戶./sqlmap.py -u “注入地址” -v 1 –tables -D “數據庫”
// 列舉數據庫的表名./sqlmap.py -u “注入地址” -v 1 –columns -T “表名” -D “數據庫”
// 獲取表的列名./sqlmap.py -u “注入地址” -v 1 –dump -C “字段,字段” -T “表名” -D “數據庫”
// 獲取表中的數據,包含列
對於拖取的數據,sqlmap非常人性化,會將獲取的數據存儲在sqlmap/output/中。
3、漏洞分析之web應用代理
通過應用代理工具分析數據包,或修改數據包、重放、暴力攻擊等在web安全測試中經常用到。
3.1 BurpSuite
Burp Suite是用於攻擊web應用程序的集成平台。Burp Suite代理,通過默認端口8080上運行,
使用這個代理,我們可以截獲並修改從客戶端到web應用程序的數據包。
3.2 OwaspZAP
OWASP Zed Attack Proxy Project攻擊代理,是一款查找網頁應用程序漏洞的綜合類滲透測試工具。
它包含了攔截代理、自動處理、被動處理、暴力破解、端口掃描以及蜘蛛搜索等功能。
OWASP ZAP為會話類調試工具,調試功能對網站不會發起大量請求,對服務器影響較小。
3.3 Paros
paros proxy,這是一個對Web應用程序的漏洞進行評估的代理程序,即一個基於Java的web代理程序,可以評估Web應用程序的漏洞。
它支持動態地編輯/查看HTTP/HTTPS,從而改變cookies和表單字段等項目。
它包括一個Web通信記錄程序,Web圈套程序,hash計算器,還有一個可以測試常見的Web應用程序攻擊的掃描器。
該工具檢查漏洞形式包括:SQL注入、跨站點腳本攻擊、目錄遍歷等。
3.4 Vega代理功能
Vega是一個開放源代碼的web應用程序安全測試平台,Vega能夠幫助你驗證SQL注入、跨站腳本、敏感信息泄露和其他一些安全漏洞。
Vega使用Java編寫,有GUI,可以在Linux、OS X和windows下運行。Vega類似於Paros Proxy,Fiddler,Skipfish和ZAproxy。
3.5 Webscarab
Webscarab一款代理軟件,包括HTTP代理,網絡爬行、網絡蜘蛛,會話ID分析,自動腳本接口,模糊測試工具,WEB格式的編碼/解碼,WEB服務描述語言和SOAP解析器等功能模塊。WebScarab基於GNU協議,使用Java編寫,是WebGoat中所使用的工具之一。
4、漏洞分析之BurpSuite
Burp Suite是一個Web應用程序集成攻擊平台,它包含了一系列burp工具,這些工具之間有大量接口可以互相通信,這樣設計的目的是為了促進和提高整個攻擊的效率。
平台中所有工具共享同一robust框架,以便統一處理HTTP請求,持久性,認證,上游代理,日志記錄,報警和可擴展性。
Burp Suit允許攻擊者結合手工和自動技術去枚舉、分析、攻擊Web應用程序。
這些不同的burp工具通過協同工作,有效的分享信息,支持以某種工具中的信息為基礎供另一種工具使用的方式發起攻擊。
Proxy提供一個直觀、友好的用戶界面,他的代理服務器包含非常詳細的攔截規則,並能准確分析HTTP消息的結構與內容。
Spide爬行蜘蛛工具,可以用來抓取目標網站,以顯示網站的內容,基本結構,和其他功能。
Scanner Web應用程序的安全漏洞進行自動發現工具。它被設計用於滲透測試,並密切與您現有的技術方法,以適應執行手動和半自動化的Web應用程序滲透測試。
Repeater可讓您手動重新發送單個HTTP請求
Intruder是burp套件的優勢,它提供一組特別有用的功能。它可以自動實施各種定制攻擊,包括資源枚舉、數據提取、模糊測試等常見漏洞。在各種有效的掃描工具中,它能夠以最細化最簡單的方式訪問它設生產的請求與響應,允許組合利用個人智能與該工具的控制優點。
Sequencer對會話令牌,會話標識符或其他出於安全原因需要隨機產生的鍵值的可預測性進行分析。
Decoder轉化成規范的形式編碼數據,或轉化成各種形式編碼和散列的原始數據。它能夠智能識別多種編碼格式,使用啟發式技術。
Comparer是一個簡單的工具,執行比較數據之間的任何兩個項目。攻擊一個Web應用程序的情況下,這一要求通常會出現當你想快速識別兩個應用程序的響應之間的差異,或兩個應用程序請求。
步驟:
1.配置監聽端口,配置瀏覽器,在大多數瀏覽器,只需打開設置-網絡-代理,然后告訴它使用“localhost”和端口“8080”。然后保存更新的設置。
2.爬蟲與掃描,可以列出當前網站中已獲取到的目錄與文件及引用到的其他文件
3.測試暴力破解表單賬戶密碼
4.repeater改包重放模塊
5.decoder編碼解碼模塊
6.compare模塊
5、漏洞分析之Fuzz工具
5.1 Bed.pl
Bed是一個純文本協議的Fuzz工具,能夠檢查常見的漏洞,如緩沖區溢出,格式串漏洞,整數溢出等。使用參數如下,可選擇針對不同協議的插件。
5.2 Fuzz_ipv6
THC出品的針對IPV6協議的模糊測試工具。
5.3 Ohrwurm
ohrwurm是一個很迷你RTP fuzz工具。
5.4 Powerfuzzer
Powerfuzzer是一個有圖形化界面的fuzz工具,作為一個web請求的fuzz工具。
5.5 Wfuzz
針對WEB應用的模糊測試工具,可以進行web應用暴力猜解,也支持對網站目錄、登錄信息、應用資源文件等的暴力猜解,還可以進行get及post參數的猜解,sql注入,xss漏洞的測試等。該工具所有功能都依賴於字典。
參數中FUZZ相當於一個變量,用字典中的字段來替換它完成猜解。使用參數:
wfzz -c –z file,common.txt –hc 404 –o html http://www.baidu/FUZZ 2>res.html
wfzz -c –z file,users.txt –z file,pass.txt -hc 404 http://www.site.com/log.asp?user=FUZZ
登錄頁面口令猜解,忽略404頁面
wfzz -c –z range,1-10 –hc=BBB http://www.site.com/log.asp?user=FUZZ
頁面數目猜解
與BurpSuite不同的是,它更輕量級。
5.6 XSSer
主要是對一個頁面或一個點進行XSS測試,判斷是否有XSS漏洞。
參數如下:
xsser [OPTIONS] [-u|-i|-d]
[-g|-p|-c][Request(s)] [Vector(s)] [Bypasser(s)]
[Technique(s)] [Final Injection(s)]
常規參數
[Options]
-version顯示版本號
-h,--help 顯示幫助信息
-s,--statistics 先是高級的統計輸出結果
-v,--verbose 啰嗦模式,測試時可以看到詳細的輸出信息
--gtk 啟動基於GTK 的GUI
特殊功能
[Special Features]
指定攻擊向量(Vector)和Bypasser時可以附帶選擇如下特殊功能:
-imx=IMX 創建嵌入了XSS代碼的偽圖像文件
-fia=FLASH 創建嵌入了XSS代碼的偽swf文件
指定待檢測目標
[Select Target(s)]
至少要指定以下選項中的一項,以設置待檢測目標的URL。
-u URL,--url=URL待檢測的目標URL
-i READFILE從文件讀取目標URL
-d DORK將搜索引擎返回的搜索結果作為目標URL
--De=DORK_ENGINE 要使用的搜索引擎
HTTP/HTTPS連接類型選擇
[Select type of HTTP/HTTPS Connection(s)]
以下選項用以指定payload注入代碼時使用的參數
-g GRTDATA 輸入待檢測的payload,使用GER方式
-p POSTDATA 輸入待檢測的payload,使用POST方式
--c Cw=CRAWLER_WIDTH 爬取的深度:1-5
--Cl 僅爬取local targets的URL
請求選項
[Configure Request(s)]
以下選項用以指定如何連接到目標的payload。可多選:
--cookie=COOKIE 自定義Cookie
--user-agent=AGENT 自定義User-Agent
--referer=REFERER 自定義Referer
--headers=HEADERS 額外的HTTP頭信息,使用換行分隔
--auth-type=ATYPE HTTP 身份認證類型
--auther-cred=ACRED HTTP 身份認證的憑證信息
--proxy=PROXY 使用代理
--timeout=TIMEOUT 超時時長
--delay=DELAY 每個請求之間的延遲秒數
--threads=THREADS 最大並發請求數量
--retries=RETRIES 連接超時后的重試次數
6、web應用程序安全攻防
6.1 web應用程序體系結構及其安全威脅
6.1.1 web應用體系結構
- 三層架構包括表示層、業務邏輯層、數據層
- web應用體系結構包括瀏覽器、web服務器、web應用程序、數據庫、傳輸協議http/https
6.1.2 web應用安全威脅
- 針對瀏覽器和終端用戶的Web瀏覽安全威脅
- 針對傳輸網絡的網絡協議安全威脅
- 系統層安全威脅
- Web服務器軟件安全威脅
- Web應用程序安全威脅
- Web數據安全威脅
6.2 web應用安全攻防技術概述
6.2.1 web應用的信息收集
- 手工審查web應用程序結構與源代碼
- 靜態和動態生成的頁面
- 目錄結構,經典工具whisker
- 輔助性文件
- 輸入表單
- 查詢參數字符串
- 自動下載與鏡像web站點頁面
- linux下工具:Lynx、wget
- Windows上工具:Teleport Pro、Offline Explorer
- 替代工具:迅雷、Flashget
- 使用Google Hacking技術審查與探測Web應用程序
- Web應用程序安全評估與漏洞探測
6.2.2 攻擊web服務器軟件
web服務器平台中的安全漏洞主要分為如下幾類:
- 數據驅動的遠程代碼執行安全漏洞
- 服務器功能擴展模塊漏洞
- 樣本文件安全漏洞
- 源代碼泄露
- 資源解析攻擊
6.2.3 攻擊web應用程序
Web應用程序安全威脅從攻擊技術角度分為如下6類:
- 針對認證機制的攻擊
- 授權機制的攻擊
- 客戶端攻擊
- 命令執行攻擊(包括緩沖區溢出、格式化字符串、LDAP注入、操作系統命令注入、SQL注入、SSL注入)
- 信息暴露
- 邏輯攻擊(包括功能濫用、拒絕服務攻擊、對抗自動程序不完善、處理驗證過程不完善等)
6.2.4 攻擊web數據內容
- 安全敏感數據泄漏
- 網站篡改
- 不良信息內容上傳
6.2.5 web應用安全防范措施
Web站點網絡傳輸安全設防措施:
- 盡量使用HTTPS來保障Web站點傳輸時的保密性、完整性與身份真實性,至少對登陸過程進行加密保護
- 通過加密的連接通道來管理Web站點
- 對關鍵的Web服務器,設置靜態綁定MAC-IP映射
Web站點操作系統及服務安全設防措施:
- 對Web站點的操作系統與服務器軟件進行及時的補丁更新
- 對Web站點服務器的操作系統及各種開放服務進行遠程安全漏洞掃描,在攻擊者利用安全漏洞實施攻擊之前發現和修補這些安全漏洞
- 采用提升系統與服務安全性的一般性設防措施
Web應用程序安全設防措施:
- 提高安全認識,開發時兼顧安全性、訪問性能與便捷性
- 使用具有良好安全聲譽及穩定技術支持力量的web應用軟件包
- 只在必要時候自主或外包開發web應用程序
- 使用web服務器軟件提供的日志功能
Web站點數據安全設防措施:
- 提高網站內容維護人員的數據安全意識
- 對維護網站的數據安全實施日常監測和防護
6.3 SQL注入
根據目標的不同分為:
- 惡意讀取、修改與操縱數據庫的SQL注入攻擊,是最常見也是較為直觀的一種攻擊技術
- 在Web服務器端安裝、執行Webshell等惡意腳本的PHP注入或ASP注入攻擊
- 在Web服務器端惡意執行操作系統命令的Shell注入攻擊
- 其他多種多樣的攻擊如LDAP注入、郵件命令注入
6.4 xss跨站腳本攻擊
與代碼注入攻擊不同的是,其最終目的不是提供服務的Web應用程序,而是使用Web應用程序的用戶。
6.4.1 XSS攻擊技術原理
與代碼注入類似,XSS攻擊的根源同樣是Web應用程序對用戶輸入內容的安全驗證與過濾不夠完善。
6.4.2 XSS攻擊類型
兩種主要的XSS漏洞類型:
- 持久性XSS漏洞(也稱作存儲型XSS漏洞,是危害最為嚴重的XSS漏洞)
- 非持久性XSS漏洞(也稱為反射XSS漏洞)
- 除了傳統的服務器端Web應用程序中存在的XSS漏洞及相應攻擊之外,安全業界又發現了一種在客戶端代碼中存在的XSS漏洞及攻擊技術,被稱為基於DOM的XSS。
6.4.3 xss攻擊
在SEED實驗環境中的phpBB論壇程序中引入了XSS安全漏洞,存在於posting.php與viewtopic.php文件中,
針對這一漏洞,我們可以通過如下步驟來測試於利用該漏洞,實施用戶會話Cookie竊取、假冒、甚至XSS蠕蟲攻擊:
- 測試XSS漏洞
- 顯示用戶的會話Cookie
- 竊取用戶的會話Cookie
- 利用Cookie信息假冒其他用戶發表與修改帖子
- 編寫實現XSS蠕蟲。
6.4.4 XSS攻擊防范措施
對XSS跨站腳本的防范分為服務器端和客戶端兩個方面。
(1)服務器端防范措施:①輸入驗證②輸出凈化③消除危險的輸入點。
(2)客戶端防范措施:提升瀏覽器的安全設置。
7、web瀏覽器安全攻防
- 軟件安全困境三要素:復雜性、可擴展性、連通性。瀏覽器軟件面臨着嚴重的威脅。
- 網頁木馬存在的技術基礎:Web瀏覽端安全漏洞。
- 網頁木馬的本質核心——瀏覽器滲透攻擊。
- 網頁掛馬機制,最主要的有如下四類策略:內嵌HTML標簽、惡意Script腳本、內嵌對象連接、ARP欺騙掛馬。
- 網頁木馬的檢測與分析方法:基於特征碼匹配的傳統檢測方法、基於統計與機器學習的靜態分析方法、基於動態行為結果判定的檢測分析方法、基於模擬瀏覽器環境的動態分析檢測方法、網頁木馬檢測分析技術綜合對比。
8、sql注入攻擊實驗
(1)關閉對抗措施
找到/etc/php5/apache2/php.ini
找到 magic_quotes_gpc = On 這一行
改為 magic_quotes_gpc = Off
(2)進入登錄界面
(3)從下面的sql登錄語句可以看出存在sql注入漏洞
(4)嘗試a用戶名
顯示用戶名或密碼錯誤
(5)必須使用數據庫里存在的用戶名才能登錄,因此嘗試admin
(6)登陸成功
(7)另一種方法是把登錄名后面的內容注釋掉,也能登陸成功
問題及解決過程
- sql注入實驗遇到的問題及解決,見第8部分
學習感悟
在sql注入的實驗里面輕松的進入數據庫之后,就找了幾個真實的網站試了一下
試了幾個網站之后到結果是這樣的...
所以事實證明課本只用看看就行了,不要對上面的技術想太多...
互聯網發展迅速,學習網絡攻防知識也需要與時俱進
學習進度條
發表博客數量 | kali視頻學習 | 網絡攻防教材內容學習 | |
---|---|---|---|
目標 | 15篇 | 38個視頻 | 共12章 (網絡攻防技術與實踐) |
第一周 | 1/15 | 實驗樓linux教程 | 實驗樓linux教程 |
第二周 | 2/15 | 視頻1-5 | 第1、2章 |
第三周 | 4/15 | 視頻6-10 | 第3章 |
第四周 | 6/15 | 視頻11-15 | 第4章 |
第五周 | 7/15 | 視頻16-20 | 第11、12章 |
參考資料
- http://www.nsoad.com/Security-tools/20161014/tools-557.html
- http://tools.kali.org/vulnerability-analysis/sidguesser
- http://www.2cto.com/article/201310/247715.html