本節書摘來自異步社群《高度安全環境下的進階滲透測試》一書中的第1章1.7節dradis架構介紹,作者【英】lee allen,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
1.7 dradis架構介紹
dradis架構是一個rails應用程式,它可以用于管理在滲透測試時出現的資料過載情況。dradis基于web的使用者界面體驗良好,它簡化了滲透測試周期的資料收集過程,并且能夠将資料友善地分享給團隊其他成員。
在結合不同的資料源,例如nmap、nessus,甚至metasploit時,你通常需要構造某種資料庫,然後使用各種方法管理導入的資料。dradis可以讓你單擊幾下滑鼠,就能通過插件導入這些資料。dradis也允許你上傳附件(例如截圖),或将你自己的注釋添加至資料庫中。
dradis架構可以安裝在linux、windows或osx上。
dradis伺服器可以通過單擊快捷方式applications | backtrack | reporting tools | evidence management | dradis,或在終端輸入以下内容來開啟:
由于證書是自簽署的,是以浏覽器會向使用者提示警告消息。将證書添加至你的例外清單中并繼續。你可能也想在 no script 浏覽器插件中選擇allow 127.0.0.1。
你将看到“what is dradis”歡迎界面.為了設定伺服器共享密碼,你需要單擊頁面右上角的back to the app連結。圖1.15是設定密碼頁面的截圖。
dradis架構使用了可以供所有團隊成員共享的密碼。在password區域中輸入你選擇的密碼。
永遠不要重複使用密碼!
單擊initialize按鈕繼續。這将建立新密碼并接受預設元伺服器(meta-server)選項。
你現在可以在login字段選擇一個新的使用者名。使用者登入作為資訊使用,它不會影響工作區域。在password區域輸入共享的服務密碼。一旦你單擊log in按鈕,dradis主工作區域就會出現。使用者名及密碼輸入頁面如圖1.16所示。
我們将通過建立一個新分支來設定個dradis環境,該分支将代表我們的滲透測試工作。這些分支可以基于使用者建立的标準來管理檢測結果
1.在程式視窗頂部的工具欄中單擊add branch按鈕。
2.你可以為新的分支重命名。使用practicepentest重寫branch #2,并按enter鍵。
3.右鍵單擊practicepentest并選擇add child來分級。
4.試驗一下并添加幾個檔案夾,然後思考你将如何安排你的資料,以友善通路和易于管理。
圖1.17是一個項目樹示例,假定該項目樹在滲透測試期間用來收集資料。
1.7.1 導出一個項目模闆
測試包含一系列計劃好的階段和過程這些階段計劃在不同測試情況下變化不大。為了充分利用這一事實,我們将建立一個可重複利用的模闆。
在選擇好practicepentest節點後,在頂部菜單欄上單擊export圖示。當展開project export菜單時,将看到as template選項。單擊該選項可以将項目模闆以xml檔案的形式存儲到我們需要的位置。導出操作如圖1.18所示。
将檔案儲存到你的backtrack desktop檔案夾并使用預設名dradis-template.xml。傳回你的dradis web應用視窗,選擇practicepentest節點,右鍵單擊,然後(在彈出的菜單中)選擇delete node,将其删除。
1.7.2 導入一個項目模闆
practicepentest節點伴随着剩下的資料一起删除了。現在是我們重新利用它的時候了,我們需要導入dradis-template.xml檔案。單擊菜單欄中的import from file選項,然後選擇old importer。從下拉菜單中選擇project template upload,單擊upload完成導入程式,一旦你的螢幕重新整理,将會有兩個新的檔案夾出現:一個檔案夾名為upload files,另一個自然就是原來的practicepentest節點結構。具體操作如圖1.19所示。
1.7.3 準備導入樣本資料
為了完全領會dradis架構的價值,我們将使用一些在滲透測試和漏洞測試中常用的工具來産生一些測試資料。大多數人應該比較熟悉這些工具,是以這裡不會深入讨論這些工具。
要是bt5_r1_tester1還沒有啟動,我們首先要做的就是立刻讓它跑起來。一旦你登入到backtrack用戶端主機并通過startx指令打開了使用者圖形界面,那麼在頂部菜單欄單擊終端圖示就會啟動一個新的終端會話。使用者圖形界面如圖1.20所示。
你可能已經注意到,自己在以root身份運作,因為很多工具都需要管理者權限才能正常運作。
将目錄更改為desktop,然後自己建立一個名為testdata的新目錄。這裡将存儲一些将要使用的導出文檔。将你的目前工作目錄更改為/desktop/testdata。
現在我們将使用nmap生成資料,掃描生成的資料随後會導入到dradis中:
nmap -vv -o -ss -a -p- p0 -oa nmapscan 127.0.0.1
該指令會初始化nmap,使其掃描本地主機,并指令結果儲存成三個格式的檔案:xml檔案、标準檔案、grepable檔案。由于沒有指定目錄,是以檔案将儲存在目前工作目錄下。我們進行了一個針對所有端口和作業系統版本檢測的細緻tcp syn掃描,這個指令針對線上的所有主機。
導入你的nmap資料
在dradis web控制台已經打開,而且practicepentest項目樹已經加載之後,選擇import from file, old improter,然後在import from file菜單中選擇nmap upload格式,然後單擊select a file:輸入區域右邊的檔案夾圖示,浏覽并選擇nmapscan.xml檔案,然後單擊open。導入檔案視窗如圖1.21所示。
單擊upload将完成導入。這需要一些時間來處理這些資料。處理時間與擁有的資料大小成正比。上傳完成後如圖1.22所示。
資料導入後會在樹上增加一個新的節點,你可以将這個節點在practicepentest内進行任意移動,僅需要單擊滑鼠左鍵進行拖曳即可。将127.0.0.1的掃描結果放到practicepentest的邏輯結構中後,你可以輕松地将掃描結果與本次滲透測試和其他相關資料關聯起來,如圖1.23所示。
1.7.4 将導出資料轉成html格式
使用這種集中式資料收集一個好處是,你可以在注釋上設定标記,讓資料導出成pdf、ms word或者html格式。
在dradis啟動和運作時,我們需要選擇practicepentest節點,同時單擊工作區項目樹右邊的add note按鈕,在彈出的編輯器中輸入this is a note,然後單擊save。這就将你的注釋添加至清單中了。
這些注釋對你滲透測試的工作非常重要,你應該慎重考慮并清楚寫明注釋内容。避免注釋僅在目前環境下起作用,因為你可能在幾天後重新檢視這些注釋。
1.7.5 dradis類别區域
你不會總是想将所有内容導出到你的報告中。為了解決這個問題,dradis開發團隊添加category區域。這個區域将标記那些dradis提供的各種格式的資料,這些資料有待導出。在此情況下,我們需要輕按兩下在“this is a note”右邊列出的default category文本,在下拉菜單選擇htmlexport ready選項,見圖1.24。
為了檢視資料,在頂端工具欄選擇export選項,并單擊html export,你将得到所有以html格式輸出的practicepentest注釋檔案,該檔案在整個項目樹中是htmlexport類别的一個成員。
更改預設的html模闆
可以看到,dradis的輸出非常友好,但如果你需要更多定制的輸出呢?你可以通過更改标準模闆,來定制(自定義)導出的格式,下面是如何更改文檔腳的例子:
将目前工作目錄更改為選擇導出插件。在此情況下我們将修改html_export/template.html.erb檔案。
為了修改template.html.erb檔案,我們将使用nano,它是一個強大且易用的文本編輯器。
檔案将顯示在nano文本編輯器中。如果需要參考的話,nano的指令會顯示在應用的底部。我們通過設定template.html.erb檔案來使用html檔案對模闆進行小的修改。将
放到<%= title %>行的下面。
在nano中使用ctrl+o儲存你修改的檔案并寫到磁盤中。你将被問到用什麼檔案名來儲存檔案,你可以使用預設的檔案名并在鍵盤上直接按enter。
想檢視改變是否生效,回到dradis web控制界面,選擇praticepentest,然後單擊工具欄的export→htmlexport選項。你的新模闆将被加載,在導出的報告中即可看到改變是否成功。模闆是可以定制的,隻要你付出一點努力并具備html技巧,你就能夠定制自己想要的模闆。
請注意,ms word導出功能需要你安裝ms office。
這表示在使用backtrack下不能完全展示dradis的性能。word模闆容易定制,使其包含公司資訊,以你喜歡的格式列出資料并将标準頁眉和頁腳添加到文檔中。
由于dradis是使用起來非常友善如果你需要将資料導出到ms word的功能,但是沒有許可将它安裝在backtrack上,那麼你可以将dradis安裝在一台安裝了ms office的windows主機上,将dradis項目從backtrack中導出并重新導入windows的dradis中。