一個新手試圖通過打開和關(guān)閉電源的方式修復(fù)損壞的 Lisp 機器。Knight 當時看到了學生所作所為,嚴厲地說:“你不能只通過切斷電源來修理機器,但是不知道問題出在哪里!
Knight 關(guān)閉了機器,然后重新啟動。機器就正常工作了。
——AI Koan
在過去的半個世紀中,麻省理工學院(MIT)是在學習和創(chuàng)造方面具有深厚黑客文化底蘊的地方之一,特別是它的人工智能實驗室。麻省理工學院的黑客形成了一種獨特的語言文化,創(chuàng)造了一些特殊的術(shù)語和幽默感。前面引用的是一個 AI 公案,模仿自禪宗的公案,旨在激發(fā)心智,使人頓悟。順便提一下,上文中的 Knight 指的是麻省理工學院 AI 實驗室備受尊敬的程序員 TomKnight。
本書旨在通過安全測試的鏡頭向讀者介紹 Kali Linux 的功能。這是為了幫助你更好的理解事物的運作方式和工作原理。 Kali Linux 是一款面向安全的Linux 發(fā)行版軟件,因此最終受到那些因為興趣或職業(yè)需要而進行安全測試或滲透測試的人們的歡迎。雖然它確實可以當作通用的 Linux 發(fā)行版并用于取證和其他相關(guān)任務(wù),但它的設(shè)計考慮了安全性測試。因此,本書的大部分內(nèi)容將側(cè)重于使用 Kali 提供的工具。其他 Linux 發(fā)行版中的許多工具不一定很容易地獲得。雖然可以安裝這些工具,有時可以根據(jù)源代碼進行編譯構(gòu)建,但是如果軟件包位于發(fā)行版的版本庫中,那么安裝會更容易。
本書概要
鑒于本書的目的是通過安全測試的角度介紹 Kali,將包含以下主題:
Kali Linux 入門
Linux 有著悠久的歷史,最早可以追溯到 20 世紀 60 年代的 UNIX。本章介紹了一些 UNIX 的背景知識,以便讀者更好地理解 Linux 中的工具是如何以它們自己的方式進行運作,以及如何有效地使用它們。我們還將介紹命令行,因為本書的其余部分將會經(jīng)常用到它,同時還會介紹一些桌面系統(tǒng),以便為用戶提供更好的工作環(huán)境。如果你不熟悉 Linux,本章將有助于你更順暢地閱讀本書的其他章節(jié),以便我們開始深入介紹那些實用工具時,不會讓讀者感到不知所措。
網(wǎng)絡(luò)安全測試基礎(chǔ)
大家耳熟能詳?shù)暮芏喾⻊?wù)都是通過網(wǎng)絡(luò)獲取的。但是,連接到網(wǎng)絡(luò)的系統(tǒng)可能容易受到攻擊。為了更好地對網(wǎng)絡(luò)進行測試,我們將介紹一些網(wǎng)絡(luò)協(xié)議工作原理的基礎(chǔ)知識。當你深入了解安全測試時,會發(fā)現(xiàn)正在使用的協(xié)議是一項非常寶貴的資產(chǎn)。我們還將介紹可用于網(wǎng)絡(luò)堆棧和應(yīng)用程序壓力測試的工具。
偵察
在進行安全測試或滲透測試時,一般的做法首先是對目標進行偵察。你可以使用很多開源工具來收集目標的相關(guān)信息。這不僅有助于你的后續(xù)測試,還可以提供許多詳細信息,將它們和正在執(zhí)行測試的團隊成員信息進行共享。這可以幫助他們正確地判定系統(tǒng)到達外部世界的足跡。畢竟,關(guān)于組織及其成員的信息可以成為攻擊者的墊腳石。
尋找漏洞
對組織的攻擊通常來自其漏洞。我們將介紹能夠深入了解目標組織中存在技術(shù)漏洞(非人為)的漏洞掃描器。這將為如何著手測試提供線索,因為安全測試的目的是為被測試的組織提供存在潛在漏洞和威脅的建議。識別漏洞將幫助你達到上述目的。
自動化漏洞利用
雖然 Metasploit 可能是執(zhí)行安全測試和滲透測試的基礎(chǔ),但是也可以使用其他工具。我們將介紹使用 Metasploit 的基礎(chǔ)知識,還會提及一些用于發(fā)現(xiàn)漏洞的工具,本書其他章節(jié)將會對它們進行詳細介紹。
Metasploit 進階
Metasploit 是一款復(fù)雜的軟件。熟練使用它可能需要很長時間。 Metasploit提供接近 2000 種漏洞利用,以及 500 多個有效載荷。當你對它們排列組合時,將獲得與遠程系統(tǒng)交互的數(shù)千種可能性。此外,你還可以創(chuàng)建自己的模塊。在介紹 Metasploit 時,我們將不會僅局限于闡述其用于常見漏洞的基礎(chǔ)知識。
無線安全測試
當前每個人都擁有無線網(wǎng)絡(luò)。這就是手機和平板電腦等移動設(shè)備(更不用說大量的筆記本電腦)連接到企業(yè)網(wǎng)絡(luò)的方式。但是,并非所有無線網(wǎng)絡(luò)都采用了最佳設(shè)置。 Kali Linux 提供了可用于執(zhí)行無線安全測試的工具。其中包括掃描無線網(wǎng)絡(luò)、注入幀和密碼破解。
Web 應(yīng)用測試
大量的商業(yè)行為是通過 Web 界面完成的。此外,通過 Web 界面可以獲得許多敏感信息。企業(yè)需要關(guān)注他們的重要 Web 應(yīng)用的易受攻擊性。 Kali加載了可以幫助你對 Web 應(yīng)用進行評估的工具。我們將介紹基于代理的測試,以及可用于自動化測試的其他工具。目的是幫助你更好地了解這些應(yīng)用程序?qū)δ阏跍y試的組織的安全狀況。
破解密碼
這并不是一項經(jīng)常性的需求,但你可能會被要求測試遠程系統(tǒng)和本地密碼數(shù)據(jù)庫的復(fù)雜度,以及遠程訪問的難度——破解密碼哈希(比如密碼文件),以及強制登錄遠程服務(wù)(比如 SSH, VNC 和其他遠程訪問協(xié)議)。
高級技術(shù)
你可以使用 Kali 工具庫中的所有工具進行大量測試。但是在某些時候,現(xiàn)成的工具并不能滿足需要,所以你需要開發(fā)自己的工具。這可能包括創(chuàng)建自己的漏洞利用或編寫自己的工具。更好地理解漏洞利用的工作原理,以及開發(fā)自己的工具,將為你指明正確的方向。我們還將介紹如何對 Kali的一些工具進行功能擴展,以及流行腳本語言的基礎(chǔ)知識。
報告
在完成測試之后,最重要的事情是生成測試報告。 Kali 有很多工具可以幫助你在測試結(jié)束后生成報告。我們將介紹在測試過程中添加筆記的技巧,以及生成報告的一些策略。
讀者對象
雖然我希望本書的某些內(nèi)容可供大部分讀者閱讀,但本書的主要受眾是那些擁有一些 Linux 或 UNIX 經(jīng)驗,但是想了解 Kali 所有功能的人。本書也適合那些希望通過 Kali Linux 提供的工具來更好地處理安全測試的人。如果你已經(jīng)熟悉 Linux,那么可以直接跳過第 1 章。你也可能是使用某些常用工具完成Web 應(yīng)用程序測試的人員,但希望進一步提高自己的水平。
道德忠告
對于道德這個詞,即使你對它已經(jīng)司空見慣,但是這里還是需要著重強調(diào)一下,因為它很重要。安全測試需要你獲得相應(yīng)的許可。在大多數(shù)地方,可能你做的某些事情都是非法的。在未經(jīng)許可的情況下探測遠程系統(tǒng)會給你帶來很多麻煩。首先提及合法性往往會引起人們的注意。
道德的要求往往高于法律。獲得認證的安全專業(yè)人士必須遵守與其道德操守相關(guān)的誓言。這里最重要的一點就是不濫用信息資源。 CISSP 認證有一個與之相關(guān)的道德準則,要求你同意不做任何非法或者不道德的事情。
對你無權(quán)測試的任何系統(tǒng)進行測試不僅可能是非法的,而且根據(jù)我們的行業(yè)守則來說肯定是不道德的。僅知道目標組織中的某些人并獲得他們的許可是不夠的。你必須獲得企業(yè)負責人或具有相應(yīng)責任級別人員的同意才能授予你該權(quán)限。最好以書面形式獲得許可。這可以確保雙方在同一層面達成共識。
預(yù)先確認測試范圍也很重要。你正在測試的組織可能會限制你可以執(zhí)行的操作,可以觸摸的系統(tǒng)和網(wǎng)絡(luò),以及可以執(zhí)行測試的時間。以書面形式獲得所有這些。事先準備好這些。它們是你避免牢獄之災(zāi)的強力保障。記下測試范圍,然后照章辦事。
當然,交流!交流!交流!請幫自己一個忙。不要只是以書面形式獲得許可,然后無故消失,而客戶無法知道你在做什么。溝通和協(xié)作將為你正在測試的組織帶來良好的結(jié)果。這通常也是正確的做法。
在道德的界限內(nèi),盡情施展你的才華。
排版約定
本書使用的排版約定如下所示:
斜體(Italic)
表示新術(shù)語, URL, 電子郵件地址,文件和文件擴展名。在段落中用于指代程序元素,比如變量名或函數(shù)名稱,數(shù)據(jù)庫,數(shù)據(jù)類型,環(huán)境變量,語句和關(guān)鍵字。
等寬字體(Constant width)
用于表示程序列表和代碼示例。
代碼示例
本書中的代碼可以幫助你完善工作。一般而言,本書中的源代碼,不需要得到我們的許可就可以應(yīng)用到你自己的程序或文檔中,除非你希望重新發(fā)布了這些代碼的副本。舉例來說,一個程序中用到本書中的若干代碼塊不需要許可授權(quán)。銷售或發(fā)布包含 O’Reilly 圖書中的代碼樣例的 CD-Rom 不需要授權(quán)許可;卮鹨粋問題引用本書中的內(nèi)容或代碼不需要授權(quán)許可。在你的產(chǎn)品文檔中加入大量的本書代碼樣例需要授權(quán)許可。
我們建議,但非強制要求標明出處。出處通常包括標題,作者,出版社和ISBN。比如:“Learning Kali Linux by Ric Messier (O’Reilly). Copyright2018 Ric Messier, 978-1-492-02869-7”。
如果你覺得使用代碼樣例超出了上述許可范圍,請通過 permissions@oreilly.com 與我們?nèi)〉寐?lián)系。
O’Reilly 在線學習平臺(O’Reilly Online Learning)
近 40 年來, O’Reilly Media 致力于提供技術(shù)和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。
我們擁有獨一無二的專家和革新者組成的龐大網(wǎng)絡(luò),他們通過圖書、文章、會議和我們的在線學習平臺分享他們的知識和經(jīng)驗。 O’Reilly 的在線學習平臺允許你按需訪問現(xiàn)場培訓課程、深入的學習路徑、交互式編程環(huán)境,以及O’Reilly 和 200 多家其他出版商提供的大量文本和視頻資源。有關(guān)的更多信息,請訪問 http://oreilly.com。
聯(lián)系我們
請將關(guān)于本書的意見和問題通過以下地址提供給出版商:
美國:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術(shù)咨詢(北京)有限公司
我們?yōu)楸緯峁┝艘粋網(wǎng)頁,上面有勘誤表、示例和其他相關(guān)的信息,請訪問:http://bit.ly/learning-kali-linux。
有關(guān)本書的建議或者技術(shù)問題,請發(fā)郵件到 bookquestions@oreilly.com。
有關(guān)其他圖書、講座、會議、新聞的信息,請訪問我們的網(wǎng)站: http://www.oreilly.com。
我們的 Facebook: http://facebook.com/oreilly。
我們的 Twitter: http://twitter.com/oreillymedia。
我們的 YouTube: http://www.youtube.com/oreillymedia。
致謝
特別感謝 Courtney Allen,他是 O’Reilly 出版社的優(yōu)秀聯(lián)絡(luò)員。還要感謝我的編輯 Virginia Wilson,當然還有我的技術(shù)審稿人幫助改進了這本書——Brandon Noble, Kathleen Hyde,尤其是 Megan Daudelin !