《OWASP—網路安全攻防初體驗》—那些你應該知道的知識(六)
宣告:本次實踐是基於專用獨立環境開放給安全人員實踐使用,都是一些常見的漏洞,這些漏洞一般都廣為人知,所以你很難在現實中使用,博主寫這篇文章的用意也絕不在於次,在此宣告!
寫在前面:
近期,有幸參加了一次網路安全攻防技能實踐培訓。第一次接觸該領域,很多理論知識還很缺失,本篇文章將針對課程中介紹的一些知識做簡要的回顧,包括攻擊開展的一般步驟,一些常用工具的使用方法,以及一些攻擊的實踐。
這是博主第一次接觸網路安全攻防,所掌握的知識比較膚淺且不全面,僅作為自己學習的記錄和給一些初學者一個初步的印象,如有說的不對的地方環境大家指教。
實踐環境:
本次培訓都是基於虛擬機器環境開展的,共部署有兩臺虛擬機器。一臺WinServer2008作為攻擊機,一臺Linux作為靶機。
Winserver2008上面,安裝了不少攻擊常用的機器,而Linux則是OWASP(開放式Web應用程式安全專案),上面有很多存在漏洞的web應用,讓我們作為攻擊的物件。
兩臺虛擬機器,是通過vmware橋接實現的互通,橋接的原理在此不多做解釋了。
這些實踐都是OWASP上開放給安全人員實踐使用,都是一些常見的
一般步驟
依次攻擊的實現一般可分為以下三個部分:發現漏洞—利用漏洞—開展攻擊。
發現漏洞:發現應用中存在的漏洞,一般結合工具,掃描發現是否有暴露的敏感目錄,供我們使用。這一步也可以看做是尋找攻擊的入口;
利用漏洞:發現漏洞後,我們需要利用該漏洞。已獲得開展攻擊所需要的條件。這個條件可能是一些敏感資訊的獲取,後臺管理許可權的獲取,木馬的植入等等;
開展攻擊:在我們具備了開展攻擊的條件以後,便可以開展攻擊。這一步恐怕是真正的黑客才會做的,我們更多的經理應集中在發現漏洞和利用漏洞這兩個部分。
一些工具
根據我們前面講到的一次攻擊的一般步驟,這裡面提到的每一步都需要結合工具使用,你可以選擇使用現成的工具,或者自己開發工具。下面將羅列本篇文章提到的工具和他們的一些用途,
發現漏洞:
nmap、hscan—掃描可攻擊的目標,開放的埠等
御劍—發現web應用程式中暴露的敏感頁面,例如各種登入頁面、中介軟體的管理臺等等。
搜尋—通過搜尋查詢敏感頁面,可以通過搜尋引擎的語法搜尋一些常見的攻擊入口,如sql注入入口等。
其他—例如通過剛剛出現的漏洞、或社會工程等方式,不多說了
利用漏洞:
在發現了可以攻擊的漏洞作為攻擊入口後,則要針對漏洞的形式想辦法利用該漏洞,下面羅列針對以下幾種漏洞常用的工具
SQL注入漏洞—sqlmap
登入弱密碼—bruter等等,這個很多,不多說了
檢測繞過—burpsuite(可作為代理伺服器,修改http資料包內容,傳送給目標伺服器)
PHP、ASP漏洞—大小馬檔案、中國菜刀
提權工具—windows suggester exploit等等
開始實踐
下面博主將在本部分介紹一些攻擊的實踐,這包括三個部分,也較為簡單,給大家一些體驗。分別是sql注入、登入弱密碼、以及命令執行。
這裡只講實踐,不講原理。
1、SQL注入
這裡以/PentestLab/sqli/example1.php?name=root為例
首先判斷是否存在注入點:
在結尾,增加',頁面無輸出,說明存在注入點
利用sqlmap工具,檢視當前資料庫
可以看到當前資料庫名 為 exercises
至此,可以利用sqlmap語句,實現各項功能,例如檢視當前資料庫中的表
檢視當前資料庫,當前表中的欄位
檢視當前欄位的具體資訊
至此,我們可以利用sqlmap工具獲取資料庫中任意的表、任意的欄位和資訊。
2、登入弱密碼
首先發現登入的頁面,利用御劍工具進行掃描
御劍工具會通過在指定url後面新增相關敏感字端,掃描目標網站是否含有login、upload等等敏感的url。
由於在實踐環境中,不存在這樣的url的命名規則,所以此段省略。
以web靶場,第四關為例,嘗試弱密碼的破解
/webug/pentest/test/b2e16da5985ee1be/index.html
獲取登入頁面後,嘗試登入,使用者名稱:admin 密碼:123456 獲取登入失敗的提示
使用bruter工具,進行密碼的暴力破解
我們可以通過檢視網頁原始碼的方式,發現,這裡是採用的web表單提交的方式,提交使用者名稱和密碼
我們使用bruter,在協議選擇框—選擇web form
之後,點選option,提交URL,點選Load Form
這時,bruter會自動讀取目標url的html資訊,匹配敏感字,獲取表單中輸入使用者名稱和密碼的位置。這裡,我們已知想要爆破密碼的使用者為admin使用者,所以我們手動填寫username欄位的值,更改為admin,點選ok。
剛才,我們已經知道了使用者登陸失敗的提示字元是什麼,所以這裡我們採用反向結果作為response的標準。
也就是說,當響應中包含這些字元時,判斷登入失敗。
點選OK,選擇密碼字典。這是爆破密碼的關鍵,如果密碼字典中,沒有正確密碼的答案,則無法完成爆破
之後,為了提高效率,我們可以調整連線的數量,點選star,開始爆破,我們可以在testing中,看到爆破的過程
最終,我們在result,看到爆破的結果:使用者admin的密碼為admin123
嘗試登陸,可以看到登陸成功。
3、命令執行
這一部分可以分為三個部分:檔案的植入—遠端的控制—命令的執行
想要植入檔案,手段有很多,這裡講的是以web應用中存在上傳功能為例,進行解釋。
首先,我們應該通過御劍等工具,掃描可以上傳檔案的入口,這裡採用的是模擬的環境,所以此步驟省略。
相關url為/webug/pentest/test/11/
按照這裡的提示,可以知道,支援上傳的檔案型別為圖片,隨便選擇一個txt檔案上傳,發現上傳失敗。
這裡,我們要想辦法,欺騙攻擊目標伺服器,讓他以為我上傳的是圖片檔案,實際則是其他檔案
首先將我們想要上傳的檔案,字尾更改為.jpg,發現可以上傳,但這樣,該檔案在目標伺服器上也是.jpg檔案,這是無法供我們使用的
所以,在這裡我們需要開啟瀏覽器代理,並將代理指向BurpSuite。
再次提交,我們想要傳入的字尾仍為.jpg的檔案,點選提交,我們可以看到,相關的報文資訊出現在了BP中
這裡我們可以看到,content-type為image/jpeg,也就是圖片格式,如果後端伺服器驗證的就是驗證content-type,這裡我們只需要修改filename,將檔案改為php檔案,而content-type不動,則可以欺騙目標伺服器。
也可以選擇,將報文傳送到repeater中,通過reperter模組,模擬request,檢視伺服器的request,看檔案是否上傳成功,結果如下:
可見檔案確實上傳成功,並且我們可以看到檔案儲存的位置在/upload/目錄下
我們可以通過瀏覽器,驗證檔案具體的路徑
http://192.168.126.101/webug/pentest/test/11/upload/php99.php
瀏覽器返回為空,實際為瀏覽器無法解析,初步判斷檔案所在路徑正確。
這裡,我們上傳的是一個小馬檔案,我們可以通過中國菜刀,與攻擊伺服器建立連線
開啟中國菜刀,右鍵新增shell
將檔案的路徑,貼上進去,並填入小馬檔案中的值,點選新增
新增完成後,雙擊該連線,即可完成與攻擊伺服器的遠端連線
此時,目標攻擊伺服器已經被我們貢獻,我們可以在這裡上傳檔案,刪除檔案等等。我們甚至可以執行命令:
右鍵該連結,選擇虛擬終端,輸入我們想要執行的命令,例如檢視ip地址
我們可以通過上傳大馬檔案,獲得更強大的控制的體驗,也可以通過上傳提權工具,獲得更高的使用者許可權。
至此,我們可以獲得對目標伺服器的控制權限。
總結
本篇文章簡單實踐了一些攻擊手段的實現方式和實現過程,希望大家可以通過這篇文章對網路攻防有一個初步的感受。同時,也希望在對網路入侵,網路攻擊有了一個初步的認識後,對如何實現這些攻擊的防禦、安全裝置防止攻擊的原理等等,能有進一步的理解和感悟。
文章中的攻擊方式較為簡單,也比較基礎,還望各位高手輕噴。