1. 程式人生 > >《OWASP—網路安全攻防初體驗》—那些你應該知道的知識(六)

《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地址

我們可以通過上傳大馬檔案,獲得更強大的控制的體驗,也可以通過上傳提權工具,獲得更高的使用者許可權。

至此,我們可以獲得對目標伺服器的控制權限。


總結

本篇文章簡單實踐了一些攻擊手段的實現方式和實現過程,希望大家可以通過這篇文章對網路攻防有一個初步的感受。同時,也希望在對網路入侵,網路攻擊有了一個初步的認識後,對如何實現這些攻擊的防禦、安全裝置防止攻擊的原理等等,能有進一步的理解和感悟。

文章中的攻擊方式較為簡單,也比較基礎,還望各位高手輕噴。