Kali+Linux--------環境搭建

“這個世上只有兩種人,*和被****的人。”

所有事情都是圍繞一個目標來實現的。因此,在本章中,我們將討論基於目標的測試的重要性;並且描述一些在沒有目標的情況下,漏洞掃描、測試和紅隊練習的經典失敗案例。本章還對安全測試做了一個總結,介紹瞭如何搭建實驗室環境,重點討論瞭如何自定義Kali以支持測試的一些高級內容。閱讀完本章,你將瞭解到以下內容:
1.安全測試的概述
2.漏洞掃描、
測試和紅隊練習的經典失敗案例
3.更新和組織Kali
4.使用BASH腳本自定義Kali
5.設置定義的目標
6.構建運行環境

1.1 安全測試的概念

世界各地的每個家庭,每個個體、公共企業或私人企業在網絡空間中都存在各種顧慮,例如數據丟失、惡意軟件和網絡恐怖主義等。這些都圍繞一個概念——保護。如果你問100位不同的安全顧問:“什麼是安全測試?”可能會聽到不同的回答。其中最簡單的解釋爲:安全測試是一個過程,用於驗證信息資產或系統是否受到保護,並且驗證保護功能是否按照預期效果執行。

1.2 經典漏洞掃描、***測試和紅隊練習的失敗

在本節中,我們將重點介紹傳統/經典的漏洞掃描、***測試和紅隊練習,並說明它們的侷限性。現在讓我們開始簡單闡述這三種方法的實際意義,並討論它們的侷限性:

·漏洞掃描(Vulnerability scanning,Vscan):這是一個識別系統或者網絡的安全漏洞的過程。漏洞掃描的侷限性是:只識別潛在的漏洞。其中可能包括大量的誤報,對用戶而言,這些漏洞的存在與風險評估並沒有太大關係。

·測試(Penetration testing,Pentest):這是一個安全地利用漏洞而不影響現有網絡或業務的過程。測試人員嘗試並模擬漏洞利用後,誤報的次數就會減少。測試的不足是隻能利用目前已知的公開漏洞,並且大部分都是以項目爲重點的測試。在***測試中,我們經常聽到“耶!得到權限”,但我們從來不問“下一步是什麼”。這可能有各種原因,如項目限制你立即向客戶報告高風險問題,或者客戶只關心網絡的一部分,並希望你妥協。

·紅隊訓練(Red Team Exercises,RTE):這是一種評價組織的有效防禦網絡威脅並且提高其安全性的過程。在RTE期間,我們注意到實現項目目標有多種方式,例如針對項目目標活動進行的完整覆蓋,包括網絡釣魚、無線、丟棄盒和物理***測試等。使用RTE的不足是它們具有時間限制,具有預定義的方案,並且它們假設虛擬的真實環境。

通常,三種不同的測試方法都指向術語:**或破解。我們將你的網絡,並暴露網絡的弱點,但是,客戶或企業主是否知曉這些網絡被侵入或破解?我們如何衡量或破解?有什麼標準?我們什麼時候才能知道網絡被***或完全破解?所有這些問題都指向一件事——什麼是主要目標?

測試/RTE的主要目標是確定風險,評估組織的每項資產、業務、品牌形象等的風險等級。這不是評估他們有多少,而是評估他們暴露多少。如果發現的威脅並不構成風險,則無須進行證明。例如,對宣傳冊網站進行跨站腳本(Cross-Site Scripting,XSS)可能不會對業務產生重大影響;然而,客戶端可能會接受使用Web應用程序防火牆(Web Application Firewall,WAF)防止XSS***。

1.3 測試方法

模型中很少考慮爲什麼要進行測試,或哪些數據是需要保護的業務關鍵數據。缺少這至關重要的一步,測試無法抓住重點。

很多測試人員不願遵循現成的模型方法,他們擔心模型會阻礙他們進行網絡的創造力。測試不能反映惡意者的實際活動。通常,客戶希望看到你能不能在一個特定的系統中獲得管理上的訪問權(“你可以打開這個盒子嗎?”)。然而,***者可能會重點關注複製關鍵數據的方式——不需要底層接入,或引起拒絕服務。

爲了解決測試方法中固有的侷限性,必須從***者的角度集成一個框架——殺鏈(Rill chain)。

在2009年,Lockheed Martin CERT的Mike Cloppert介紹了這個概念,現在被稱爲“者殺鏈(attacker kill chain)”。當者訪問網絡時,“殺鏈”包含者採取的步驟。“殺鏈”不總是以一個線性流呈現,因爲一些步驟可能會並行出現。多發可以對同一個目標瞬時進行多種,並且在同一時間***步驟可能發生重疊。

在本書中,我們已經修改了Cloppert的殺鏈,使之能更準確地反映***者如何在利用網絡、應用和數據服務時應用這些步驟。

圖1.1顯示了一個***者的典型殺鏈。

Kali+Linux--------環境搭建
一個***者的典型殺鏈可以描述爲:

·偵察階段。有一句格言:“偵察永遠不浪費時間”。大多數軍事組織承認,在進攻敵人之前,最好儘可能地去了解敵人的一切信息。同樣,者在之前也會對目標展開廣泛的偵察。事實上,據估計,針對測試或,至少有70%的“工作量”是進行偵察!一般來說,可採用兩種類型的偵察:

·被動偵察。這種方式並不直接與目標以敵對方式進行交互。例如,者將會審查公共的可用網站,評估在線媒體(尤其是社交媒體網站),並試圖確定目標的“表面”。

一個詳細的任務將會產生一份過去和現在的僱員名稱的列表。這些名稱將成爲嘗試蠻力或密碼猜測的基礎。同樣它們也被用到社會工程的中。

這種類型的偵察很難從普通用戶的行爲中區分出來。

·主動偵察。這種方式可以被目標檢測到,但是很難從常規的背景中區分出大多數在線組織的表現。

主動偵察期間的活動包括物理訪問目標前端、端口掃描和遠程漏洞掃描。

·交付階段。交付是選擇和開發武器,武器用於完成中的任務。精確的武器選擇取決於者的意圖以及實施路線(例如,藉助網絡、通過無線,或通過基於Web的服務)。交付階段的影響將在本書第二部分進行研究。

·利用或階段。一個特定的漏洞被成功利用的時刻,此時者實現他們的目標。可能已經在一個特定的情景下發生(例如:通過緩衝區溢出利用一個已知操作系統的安全隱患),或者可能在多個情景下發生(例如:一個者物理訪問公司住所,偷取他們的電話簿,用公司員工的名字來創建門戶登錄蠻力列表。此外,電子郵件被髮送到所有員工以引誘他們單擊一個嵌入式鏈接,下載製作的PDF文件,這些文件會危及員工的計算機)。當惡意者針對特定的企業時,多情景是常態。

·後期利用階段:對目標的行動。這經常被稱爲“滲漏階段”(exfiltration phase),這是錯誤的,因爲通常理解的,僅僅以竊取敏感信息作爲唯一的目的(如登錄信息、個人信息和財務信息);但是,通常情況下,者有不同的目標。例如,這一階段必須專注於者的許多可能的行動。

最常見的利用活動是***者試圖提升他們的訪問權限到最高級(縱向升級),並且破解儘可能多的賬號(橫向升級)。

·後期利用:持久性。如果一個網絡或者系統是有價值的,那麼這個價值很可能在持續下增長。這就需要者持續與被攻破的系統之間保持通信。從防護者的角度來看,這是殺鏈中最容易檢測到的一部分。

者試圖網絡或特定的數據系統時,殺鏈是者行爲的一種基本模型。作爲一種元模型,它可以吸收任何私人的或商業的測試方法。但是,也不同於這些方法,它使者在一個戰略高度上關注如何接近網絡。這種專注於***者的活動將引導本書的佈局和內容。

1.4 Kali Linux介紹——歷史和目的

Kali Linux(Kali)繼承於BackTrack測試平臺,通常認爲BackTrack是測試安全數據和語音網絡的實際標準工具包。它是由Mati Aharoni和Devon Kearns聯合開發的性安全防護工具。Kali的發展歷程如下:

·2013年3月,基於Debian GNU/Linux開源系統的***測試新工具Kali Linux取代了BackTrack。

·Kali 1.1.0(2015年2月9日):這是kali兩年來的第一次升級,其內核補丁改至3.18,有無線注入***的補丁,支持無線驅動——大約有58個固定bug。其他版本如Kali 1.1.0a可以選擇性地安裝某些程序。

·Kali 2.0(2015年8月11日):這是一個主要版本,現在是滾動分佈,主要更改了UI。可以從舊版本更新到新版本Kali 2.0。

·Kali 2016.1(2016年1月21日):推出了第一個Kali。內核4.3和最新的Gnome 3.18的發行版本。

·Kali 2016.2(2016年8月31日):第二個Kali滾動版本。內核4.6和Gnome 3.20.2更新修復了一些錯誤。

Kali 2.0的其他功能包括:

·包含超過300個測試、數據取證和防禦工具。它們由硬件和內核補丁程序提供無線支持,允許一些數據包注入無線

·支持多種桌面環境,例如Gnome、KDE、LXDE以及XFCE,也支持多種語言。

·兼容Debian的工具每天至少和Debian資源庫同步四次,使更新封裝包和支持安全修復更容易。

·有安全的發展環境和GPG簽名的包和回購協議。

·支持ISO自定義,也就是允許用戶建立他們自己的Kali版本。引導程序功能也執行企業級網絡的安裝,可以用先前的種子文件進行自動化安裝。

·隨着基於ARM的系統變得越來越普遍,成本越來越低,所以支持ARMEL和ARMHF的Kali可安裝在如下設備上,例如rk3306mk/ss808、Raspberry Pi、ODROID U2/X2、Samsung Chromebook、EfikaMX、Beaglebone Black、CuBox和Galaxy Note 10.1。

·Kali保留了一個免費的開源項目。最重要的是,它得到了活躍的在線用戶羣的支持。

Kali Linux的目的是保護並集成所有的工具,爲***測試人員提供一個統一的平臺。

1.5 安裝和更新Kali Linux

我們主要介紹了有關於kali***相關的知識。現在將更全面地介紹Kali Linux的不同安裝方法與更新技術。

1.6 在便攜式設備中使用Kali Linux

將Kali Linux安裝到便攜式設備中相當簡單。在某些情況下,客戶不允許在安全設施內部使用外部筆記本電腦。這種情況下,通常客戶端向漏洞測試者提供測試計算機以進行掃描。在漏洞測試和RTE時,在一個便攜式設備上運行Kali Linux有更多的好處:

·使用USB或者移動設備時,Kali在你的口袋中。

·無需對主機操作系統進行任何更改,Kali可以直接運行。

·可以自定義構建Kali Linux,甚至使用固化存儲器。

從Windows PC將USB轉換爲便攜式Kali是一個簡單的過程,包含三個步驟:

1)Kali Linux映像的官方下載URL爲:http://docs.kali.org/introduction/download-official-kali-linux-images

2)Win32Disk Imager的下載地址爲:https://sourceforge.net/projects/win32diskimager/

3)以管理員身份打開Win32Disk Imager。將USB驅動器插入PC的可用USB端口,可以看見圖1.2所示的界面。選擇正確的驅動器名稱,然後單擊Write。

Kali+Linux--------環境搭建

一旦完成,退出Win32Disk Imager,並安全移出USB。現在Kali Linux已經在便攜式設備上準備好了,並可以插入任何筆記本電腦來直接啓動。如果主機操作系統是Linux,則可以通過兩個標準命令來實現,即--sudofdisk-1和dd if=kali linux.iso of=/dev/nameofthedrive bs=512k。前者將顯示驅動器上安裝的所有磁盤;對於後者,如果用於輸入文件,dd命令行執行轉換和複製,of是指輸出文件,bs是指塊大小。

1.7 將Kali安裝到虛擬機中

本節將深入瞭解如何將Kali安裝到VMware Workstation Player和Oracle VirtualBox中。

VMware Workstation Player

VMware Workstation Player以前稱爲VMware Player,可供個人免費使用。在主機操作系統中,VMware虛擬機作爲桌面應用程序存在,允許商用。該應用程序可以從URL http://www.vmware.com/products/player/playerpro-evaluation.html 下載。

接下來,介紹將Kali Linux逐步安裝到VMware Workstation Player中的過程。

一旦將文件下載到主機操作系統中,只需單擊Open the executable(打開可執行文件)即可看到如圖1.3所示的屏幕截圖。
Kali+Linux--------環境搭建
下一步是接受最終用戶許可協議,單擊Next,直至獲得如圖1.4所示的屏幕,屏幕顯示了在主機操作系統上成功安裝了VMware。

下一步將Kali Linux安裝到VMware,我們已經從官方的Kali Linux下載了文件,現在點擊Create a NewVirtual machine(創建新的虛擬機)並選擇Installer disc image file(iso)(安裝磁盤映像文件)。瀏覽下載的ISO文件,然後單擊Next。現在可以輸入所選擇的名稱(例如,HackBox),並選擇要存儲VMware映像的自定義位置。單擊Next,然後指定運行Kali的最小磁盤容量(推薦爲10GB),然後單擊Next直到完成所有設置。完成後,應該可以看到如圖1.5所示的屏幕。
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
可以選擇將Kali Linux安裝到主機操作系統或將其作爲實時映像運行。一旦完成所有安裝步驟,就可以從VMware成功啓動Kali Linux,如圖1.6所示。
Kali+Linux--------環境搭建
注意: Sana存儲庫從新版本的kali-linux 2016.2中刪除。Sana是由包組成的存儲庫的代碼名稱。所以建議安裝/啓動Kali Linux後的第一步是運行apt-get update,以便更新sources.lst文件。

VirtualBox

VirtualBox類似於VMware Workstation Player,它是一個完全開源的虛擬機管理程序,也是可以從主機操作系統運行任何虛擬機的免費桌面應用程序。可以從https://www.Virtualbox.org/wiki/Downloads 下載VirtualBox。

現在將在VirtualBox上安裝Kali。與VMware類似,將執行所下載的可執行文件,這些可執行文件將引導我們進入如圖1.7所示的屏幕。
Kali+Linux--------環境搭建
一旦點擊Next,VirtualBox應該提供自定義選項選擇不同的存儲方式,默認情況下,我們將選擇VirtualBox Application,如圖1.8所示。
點擊Next,可以看到安裝進度,如圖1.9所示。

圖1.10提供了成功安裝Oracle VirtualBox的確認信息。
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
下一步是將Kali Linux安裝到VirtualBox中。點擊菜單中的New,出現如圖1.11所示的屏幕,可以輸入所選擇的名稱,並選擇平臺的正確版本。例如,根據我們下載的ISO映像,選擇64位Debian或32位Debian。

單擊Next,並提供Kali所需的RAM大小。我們建議RAM至少爲1GB。通過點擊Next,將在主機操作系統上爲Kali Linux創建一個虛擬硬盤。單擊Next選擇硬盤文件類型,大多選擇VDI(Virtualbox Disk Image),如圖1.12所示。
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
點擊Next,創建硬盤的大小,如圖1.13所示。

最後,我們必須到Hackbox|Settings中,將ISO映像加載爲外部驅動,如圖1.14所示。
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
現在應該可以看到以下截圖,已成功安裝Kali Linux到VirtualBox,如圖1.15所示。
Kali+Linux--------環境搭建

1.8 將Kali安裝到Docker設備

Docker是一個開源項目,旨在即時自動部署軟件容器和應用程序。Docker還在Linux上提供了操作系統級的虛擬化附加抽象和自動化層。

Docker適用於Windows,MacOS、Linux、AWS(Amazon Web Services)和Azure。在Windows中,可從https://download.docker.com/win/stable/InstallDocker.msi 下載Docker。

以下步驟顯示如何在Windows 10中安裝Docker,如圖1.16所示:
Kali+Linux--------環境搭建
安裝Docker到Windows,需要使用Microsoft Windows上的Hyper-V功能。如果沒有啓用Hyper-V,很可能會看到如圖1.17所示的界面。
一旦點擊Ok,Hyper-V將由Docker應用程序啓用,可以通過簡單地輸入docker命令查看命令提示信息,如圖1.18所示。

現在,我們已經將Docker設備安裝到Windows主機操作系統。使用簡單的docker pull kalilinux/kalilinux-docker命令安裝Kali Linux,如圖1.19所示。
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
一旦將Kali Linux下載到Docker應用程序,就可以立即從下載的Kali Docker設備運行run-t-i kalilinux/kal-linux-docker/bin/bash,如圖1.20所示。
Kali+Linux--------環境搭建
應該能夠直接從Docker運行Kali Linux。另外,請注意,Docker在後臺使用VirtualBox環境。因此,它是通過Docker設備在VirtualBox上運行的虛擬機。

1.9 將Kali安裝到雲——創建一個AWS實例

AWS是Amazon提供的一個基於雲的平臺,Amazon主要爲客戶提供隨時隨地的計算、存儲和內容傳送。測試者或可以利用AWS進行***測試,本節將介紹最簡單地將Kali Linux安裝到AWS中的方法,在外部命令和控制的情況下,這將非常方便。

首先,需要一個有效的AWS賬戶。可以通過訪問https://console.aws.amazon.com/console/home 註冊。

登錄AWS賬戶後,可以看到所有的AWS服務,如圖1.21所示。

第二步是在AWS上啓動Kali Linux。我們將通過安裝Debian操作系統來定製Kali Linux。開源社區使得在Amazon Marketplace中直接啓動預配置的Kali Linux 2016.2變得非常簡單。https://aws.amazon.com/marketplace/pp/B01M26MMTT 將使我們能夠在幾分鐘內直接啓動Kali Linux。

當訪問該鏈接時,能夠看到如圖1.22所示的內容。

點擊Accept Software Terms&Launch with 1-Click(接受軟件條款並且啓動)按鈕,然後通過訪問https://console.aws.amazon.com/ec2/v2/home?regin=us-east-1 ,來訪問你的AWS控制檯。現在可以通過在Launch Instance(創建實例)上選擇Instance ID按鈕來創建一個實例,如圖1.23所示。
Kali+Linux--------環境搭建Kali+Linux--------環境搭建
爲了確保只有你可以訪問Kali Linux,需要創建一個鍵值對。現在可以使用在鍵值對中生成的私鑰登錄到你的AWS雲。然後,通過從命令shell輸入以下命令來登錄:
Kali+Linux--------環境搭建
Kali+Linux--------環境搭建
圖1.24顯示了Kali已在AWS上成功安裝。
Kali+Linux--------環境搭建
必須滿足所有條款和條件才能利用AWS進行測試。在發起雲主機的任何之前,必須遵守法律條款和條件。

1.10 小結

在文章中,我們介紹了不同的測試方法,以及針對實時進行測試的基於目標的測試的組織方法。我們介紹了測試人員如何在多個不同平臺上使用Kali Linux來評估數據系統和網絡的安全性。我們已經在不同的虛擬化平臺上安裝了Kali,並且看到在Windows平臺上使用Docker運行Linux操作系統的快捷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章