第一章 配置 Kali Linux
簡介
在第一章中,我們會涉及如何准備我們的 Kali 以便能夠遵循這本書中的秘籍,並使用虛擬機建立帶有存在漏洞的 Web 應用的實驗室。
1.1 升級和更新 Kali
在我們開始 Web 應用安全測試之前,我們需要確保我們擁有所有必要的最新工具。這個秘籍涉及到使 Kali 和它的工具保持最新版本的基本步驟。
准備
我們從 Kali 已經作為主操作系統安裝到計算機上,並帶有網絡連接來開始。這本書中所使用的版本為 2.0。你可以從 https://www.kali.org/downloads/ 下載 live CD 和安裝工具。
操作步驟
一旦你的 Kali 實例能夠啟動和運行,執行下列步驟:
-
以 root 登錄 Kali。默認密碼是 toor,不帶雙引號。你也可以使用
su
來切換到該用戶,或者如果喜歡使用普通用戶而不是 root 的話,用sudo
來執行單條命令。 -
打開終端。
-
運行
apt-get update
命令。這會下載可用於安裝的包(應用和工具)的更新列表。apt-get update
-
一旦安裝完成,執行下列命令來將非系統的包更新到最新的穩定版。
apt-get upgrade
-
當被詢問是否繼續時,按下
Y
並按下回車。 -
下面,讓我們升級我們的系統。鍵入下列命令並按下回車:
apt-get dist-upgrade
-
現在,我們更新了 Kali 並准備好了繼續。
工作原理
這個秘籍中,我們涉及到了更新基於 Debian 的系統(比如 Kali)的基本步驟。首先以update
參數調用apt-get
來下載在所配置的倉庫中,用於我們的特定系統的包的最新列表。下載和安裝倉庫中最新版本的所有包之后,dist-update
參數下載和安裝upgrade
沒有安裝的系統包(例如內核和內核模塊)。
這本書中,我們假設 Kali 已經作為主操作系統在電腦上安裝。也可以將它安裝在虛擬機中。這種情況下,要跳過秘籍“安裝 VirtualBox”,並按照“為正常通信配置虛擬機”配置 Kali VM 的網絡選項。
更多
有一些工具,例如 Metasploit 框架,擁有自己的更新命令。可以在這個秘籍之后執行它們。命令在下面:
msfupdate
1.2 安裝和運行 OWASP Mantra
OWASP(開放 Web 應用安全項目,https://www.owasp.org/)中的研究員已經將 Mozilla FIrefox 與 大量的插件集成,這些插件用於幫助滲透測試者和開發者測試 Web 應用的 bug 或安全缺陷。這個秘籍中,我們會在 Kali 上安裝 OWASP Mantra(http://www.getmantra.com/),首次運行它,並查看一些特性。
大多數 Web 應用滲透測試都通過瀏覽器來完成。這就是我們為什么需要一個帶有一組工具的瀏覽器來執行這樣一個任務。OWASP Mantra 包含一系列插件來執行任務,例如:
-
嗅探和攔截 HTTP 請求
-
調試客戶端代碼
-
查看和修改 Cookie
-
收集關於站點和應用的信息
准備
幸運的是, OWASP Mantra 默認包含於 Kali 的倉庫中。所以,要確保我們獲得了瀏覽器的最新版本,我們需要更新包列表:
apt-get update
操作步驟
-
打開終端並執行:
apt-get install owasp-mantra-ff
-
在安裝完成之后,訪問菜單:
Applications | 03 - Web Application Analysis | Web Vulnerability Scanners | owasp-mantra-ff
來首次啟動 Mantra。或者在終端中輸入下列命令:owasp-mantra-ff
-
在新打開的瀏覽器中,點擊 OWASP 圖標之后點擊
Tools
。這里我們可以訪問到所有 OWASP Mantra 包含的工具。 -
我們會在之后的章節中使用這些工具。
另見
你可能也對 Mantra on Chromium (MOC)感興趣,這是 Mantra 的一個替代版本,基於 Chromium 瀏覽器。當前,它只對 Windows 可用:http://www.getmantra.com/mantra-on-chromium.html。
1.3 配置 Iceweasel 瀏覽器
如果我們不喜歡 OWASP Mantra,我們可以使用 Firefox 的最新版本,並安裝我們自己的測試相關插件。Kali Linux 包含了 Iceweasel,另一個 Firefox 的變體。我們這里會使用它來看看如何在它上面安裝我們的測試工具。
操作步驟
-
打開 Iceweasel 並訪問
Tools | Add-ons
。就像下面的截圖這樣: -
在搜素框中,輸入
tamper data
並按下回車。 -
在
Tamper Data
插件中點擊Install
。 -
對話框會彈出,詢問我們接受 EULA,點擊
Accept and Install...
。你可能需要重啟你的瀏覽器來完成特定插件的安裝。
-
下面,我們在搜索框中搜索
cookies manager+
。 -
在
cookies manager+
插件中點擊Install
。 -
現在,搜索
Firebug
。 -
搜索和安裝
Hackbar
。 -
搜索和安裝
HTTP Requester
。 -
搜索和安裝
Passive Recon
。
工作原理
目前為止,我們在 Web 瀏覽器中安裝了一些工具,但是對 Web 應用滲透測試者來說,這些工具好在哪里呢?
-
Cookies Manager+
:這個插件允許我們查看,並有時候修改瀏覽器從應用受到的 Cookie 的值。 -
Firebug
:這是任何 Web 開發者的必需品。它的主要功能是網頁的內嵌調試器。它也在你對頁面執行一些客戶端修改時非常有用。 -
Hackbar
:這是一個非常簡單的插件,幫助我們嘗試不同的輸入值,而不需要修改或重寫完整的 URL。在手動檢查跨站腳本工具和執行注入的時候,我們會很頻繁地使用它。 -
Http Requester
:使用這個工具,我們就能構造 HTTP 鏈接,包括 GET、POST 和 PUT 方法,並觀察來自服務器的原始響應。 -
Passive Recon
:它允許我們獲得關於網站被訪問的公共信息,通過查詢 DNS 記錄、WHOIS、以及搜索信息,例如郵件地址、鏈接和 Google 中的合作者。 -
Tamper Data
:這個插件能夠在請求由瀏覽器發送之后,捕獲任何到達服務器的請求。這提供給我們了在將數據引入應用表單之后,在它到達服務器之前修改它的機會。
更多
有一些插件同樣對 Web 應用滲透測試者有用,它們是:
- XSS Me
- SQL Inject Me
- FoxyProxy
- iMacros
- FirePHP
- RESTClient
- Wappalyzer
1.4 安裝 VirtualBox
這是我們的第四篇秘籍,會幫助我們建立虛擬機環境,並運行它來實施我們的滲透測試。我們會使用 VirtualBox 在這樣的環境中運行主機。這個秘籍中,我們會了解如何安裝 VirtualBox 以及使它正常工作。
准備
在我們在 Kali 中安裝任何東西之前,我們都必須確保我們擁有最新版本的包列表:
apt-get update
操作步驟
-
我們首先實際安裝 VirtualBox:
apt-get install virtualbox
-
安裝完成之后,我們要在菜單中尋找 VirtualBox,通過訪問
Applications | Usual applications | Accessories | VirtualBox
。作為替代,我們也可以從終端調用它:virtualbox
現在,我們運行了 VirtualBox 並且已經准備好配置虛擬機來構建我們自己的測試環境。
工作原理
VirtualBox 允許我們在我們的 Kali 主機上通過虛擬化運行多個主機。通過它,我們可以使用不同的計算機和操作系統來掛載完整的環境。並同時運行它們,只要 Kali 主機的內存資源和處理能力允許。
更多
虛擬機擴展包,提供了 VirtualBox 的虛擬機附加特性,例如 USB 2.0/3.0 支持和遠程桌面功能。它可以從 https://www.virtualbox.org/wiki/Downloads 下載。在下載完成后雙擊它,VirtualBox 會做剩余的事情。
另見
除此之外有一些可視化選項。如果你使用過程中感到不方便,你可以嘗試:
- VMware Player/Workstation
- Qemu
- Xen
- KVM
1.5 創建漏洞虛擬機
現在我們准備好創建我們的第一個虛擬機,它是托管 Web 應用的服務器,我們使用應用來實踐和提升我們的滲透測試技巧。
我們會使用叫做 OWASP BWA( Broken Web Apps)的虛擬機,它是存在漏洞的 Web 應用的集合,特別為執行安全測試而建立。
操作步驟
-
訪問 http://sourceforge.net/projects/owaspbwa/files/,並下載最新版本的
.ova
文件。在本書寫作過程中,它是OWASP_Broken_Web_Apps_ VM_1.1.1.ova
。 -
等待下載完成,之后打開文件:
-
VirtualBox 的導入對話框會顯示。如果你打算修改機器名稱或描述,你可以通過雙擊值來完成。我們會命名為
vulnerable_vm
,並且使剩余選項保持默認。點擊Import
。 -
導入需要花費一分鍾,之后我們會看到我們的虛擬機顯示在 VirtualBox 的列表中。讓我們選中它並點擊
Start
。 -
在機器啟動之后,我們會被詢問登錄名和密碼,輸入
root
作為登錄名,owaspbwa
作為密碼,這樣設置。
工作原理
OWASP BWA 是一個項目,致力於向安全從業者和愛好者提供安全環境,用於提升攻擊技巧,並識別和利用 Web 應用中的漏洞,以便幫助開發者和管理員修復和防止漏洞。
這個虛擬機包含不同類型的 Web 應用,一些基於 PHP,一些基於 Java,甚至還有一些基於 .NET 的漏洞應用。也有一些已知應用的漏洞版本,例如 WordPress 或 Joomla。
另見
當我們談論漏洞應用和虛擬機的時候,有很多選擇。有一個著名網站含有大量的此類應用,它是 VulnHub(https:// www.vulnhub.com/
)。它也有一些思路,幫助你解決一些挑戰並提升你的技能。
這本書中,我們會為一些秘籍使用另一個虛擬機: bWapp Bee-box。它也可以從 VulnHub 下載:https://www.vulnhub.com/entry/bwapp-beebox-v16,53/。
1.6 獲取客戶端虛擬機
當我們執行中間人攻擊(MITM)和客戶端攻擊時,我們需要另一台虛擬機來向已經建立的服務器發送請求。這個秘籍中,我們會下載 Microsoft Windows 虛擬機並導入到 VirtualBox 中。
操作步驟
-
首先我們需要訪問下載站點 。
-
這本書中,我們會在 Win7 虛擬機中使用 IE8。
-
文件下載之后,我們需要解壓它。訪問它下載的位置。
-
右擊它並點擊
Extract Here
(解壓到此處)。 -
解壓完成后,打開
.ova
文件並導入到 VirtualBox 中。 -
現在啟動新的虛擬機(名為
IE8 - Win7
),我們就准備好客戶端了。
工作原理
Microsoft 向開發者提供了這些虛擬機來在不同的 Windows 和 IE 版本上測試它們的應用,帶有 30 天的免費許可,這足以用於實驗了。
作為滲透測試者,意識到真實世界的應用可能位於多個平台,這些應用的用戶可能使用大量的不同系統和 Web 瀏覽器來和互相通信非常重要。知道了這個之后,我們應該使用任何客戶端/服務器的設施組合,為成功的滲透測試做准備。
另見
對於服務端和客戶端的虛擬機,如果你在使用已經構建好的配置時感到不便,你總是可以構建和配置你自己的虛擬機。這里是一些關於如何實現的信息:https://www.virtualbox.org/manual/。
1.7 為正常通信配置虛擬機
為了能夠和我們的虛擬服務器和客戶端通信,我們需要位於相同網段內。但是將帶有漏洞的虛擬機放到局域網中可能存在安全風險。為了避免它,我們會在 VirtualBox 中做一個特殊的配置,允許我們在 Kali 中和服務器及客戶端虛擬機通信,而不將它們暴露給網絡。
准備
在我們開始之前,打開 VirtualBox 並且寶漏洞服務器和客戶端虛擬機都關閉了。
操作步驟
-
在 VirtualBox 中訪問
File | Preferences… | Network
。 -
選擇
Host-only Networks
標簽頁。 -
點擊
+
按鈕來添加新網絡。 -
新的網絡(
vboxnet0
)會創建,它的詳細窗口會彈出。如果沒有,選項網絡並點擊編輯按鈕來編輯它的屬性。 -
在對話框中,你可以指定網絡配置。如果它不影響你的本地網絡配置,將其保留默認。你也可以修改它並使用其它為局域網保留的網段中的地址,例如 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。
-
合理配置之后,點擊
OK
。 -
下一步是配置漏洞虛擬機(vulnerable_vm)。選擇它並訪問它的設置。
-
點擊
Network
並且在Attached to:
下拉菜單中,選擇Host-only Adapter
。 -
在
Name
中,選擇vboxnet0
。 -
點擊
OK
。 -
在客戶端虛擬機(
IE8 - Win7
)中執行第七步到第十步。 -
在配置完兩個虛擬機之后,讓我們測試它們是否能真正通信。啟動兩個虛擬機。
-
讓我們看看宿主系統的網絡通信:打開終端並輸入:
ifconfig
-
我們可以看到我們擁有叫做
vboxnet0
的網絡適配器,並且它的 IP 地址為 192.168.56.1。取決於你所使用的配置,這可能有所不同。 -
登錄 vulnerable_vm 並檢查適配器
eth0
的 IP 地址。ifconfig
-
現在,讓我們訪問我們的客戶端主機
IE8 - Win7
。打開命令行提示符並輸入:ipconfig
-
現在,我們擁有了三台機器上的 IP 地址。
- 192.168.56.1 :宿主機
- 192.168.56.102 :vulnerable_vm
- 192.168.56.103 :IE8 – Win7
-
為了測試通信,我們打算從宿主機中 ping 兩個虛擬機。
ping -c 4 192.168.56.102
ping -c 4 192.168.56.103
ping 會發送 ICMP 請求給目標,並等待回復。這在測試網絡上兩個節點之間是否可以通信的時候非常有用。
-
我們對兩個虛擬機做相同操作,來檢車到服務器和到另一台虛擬機的通信是否正常。
-
IE8 – Win7 虛擬機可能不響應 ping,這是正常的,因為 Win7 的配置默認不響應 ping。為了檢查連接性,我們可以從 Kali 主機使用
arping
。arping –c 4 192.168.56.103
工作原理
僅有主機的網絡是虛擬網絡,它的行為像 LAN,但是它僅僅能夠訪問宿主機,所運行的虛擬機不會暴露給外部系統。這種網絡也為宿主機提供了虛擬適配器來和虛擬機通信,就像它們在相同網段那樣。
使用我們剛剛完成的配置,我們就能夠在客戶端和服務器之間通信,二者都可以跟 Kali 主機通信,Kali 會作為攻擊主機。
1.8 了解漏洞 VM 上的 Web 應用
OWASP BWA 包含許多 Web 應用,其內部含有常見攻擊的漏洞。它們中的一些專注於一些特定技巧的實驗,而其它嘗試復制碰巧含有漏洞的,真實世界的應用。
這個秘籍中,我們會探索 vulnerable_vm,並了解一些其中包含的應用。
准備
我們需要啟動我們的 vulnerable_vm,並正確配置它的網絡。這本書中,我們會使用 192.168.56.102 作為它的 IP 地址。
操作步驟
-
vulnerable_vm 啟動后,打開 Kali 主機的 Web 瀏覽器並訪問
http://192.168.56.102
。你會看到服務器所包含的所有應用列表。 -
讓我們訪問
Damn Vulnerable Web Application
。 -
使用
admin
作為用戶名,admin
作為密碼。我們可以看到左邊的菜單:菜單包含我們可以實驗的所有漏洞的鏈接:爆破、命令執行、SQL 注入,以及其它。同樣,DVWA 安全這部分是我們用於配置漏洞輸入的安全(或復雜性)等級的地方。 -
登出並返回服務器的主頁。
-
現在我們點擊
OWASP WebGoat.NET
。這是個 .NET 應用,其中我們可以實驗文件和代碼注入攻擊,跨站腳本,和加密漏洞。它也含有 WebGoat Coins Customer Portal,它模擬了商店應用,並可以用於實驗漏洞利用和漏洞識別。 -
現在返回服務器的主頁。
-
另一個包含在虛擬機中的有趣應用是 BodgeIt。它是基於 JSP 的在線商店的最小化版本。它擁有我們可以加入購物車的商品列表,帶有高級選項的搜索頁面,為新用戶准備的注冊表單,以及登錄表單。這里沒有到漏洞的直接引用,反之,我們需要自己找它們。
-
我們在一個秘籍中不能瀏覽所有應用,但是我們會在這本書中使用它們。
工作原理
主頁上的應用組織為六組:
-
訓練應用:這些應用分為幾部分,專注於實驗特定的漏洞或攻擊技巧。他它們中的一些包含教程、解釋或其他形式的指導。
-
真實的,內部含有漏洞的應用:這些應用的行為就像真實世界的應用(商店】博客或社交網絡)一樣,但是開發者出於訓練目的在內部設置了漏洞。
-
真實應用的舊(漏洞)版本:真是應用的舊版本,例如 WordPress 和 Joomla 含有已知的可利用的漏洞。這對於測試我們的漏洞識別技巧非常實用。
-
用於測試工具的應用:這個組中的應用可以用做自動化漏洞掃描器的基准線測試。
-
演示頁面/小應用:這些小應用擁有一個或一些漏洞,僅僅出於演示目的。
-
OWASP 演示應用:OWASP AppSensor 是個有趣的應用,它模擬了社交網絡並含有一些漏洞。但是他會記錄任何攻擊的意圖,這在嘗試學習的時候很有幫助。例如,如何繞過一些安全設備,例如網絡應用防火牆。
轉載自:第一章 配置 Kali Linux - Kali Linux Web 滲透測試秘籍 中文版 - 文江博客 (wenjiangs.com)