本書不僅詳細闡釋了Linux操作系統(tǒng)的基礎知識,包括文件系統(tǒng)、終端命令操作、文本操作、網絡操作、軟件管理、權限管理、服務管理、環(huán)境變量管理等,還擴展講解了一些基礎的bash和Python腳本編程技術,以及其他控制Linux系統(tǒng)環(huán)境所需的工具和技術,同時還提供了大量實踐指導和練習。
如果你在黑客防御、網絡安全和滲透測試的有趣旅程上剛剛起步,那么本書會是一個不錯的開始。利用Kali Linux系統(tǒng)(一款高級滲透測試Linux發(fā)行版),你將學到使用Linux操作系統(tǒng)的基礎知識,并獲取控制Linux系統(tǒng)環(huán)境所需的工具和技術。
前 言
黑客攻防是21世紀網絡安全面臨的重要挑戰(zhàn)之一。近年來,新聞報道的很多事件似乎也都在證明這件事情,例如網絡罪犯竊取大量錢財、勒索蠕蟲病毒肆虐、敵對勢力互相影響選舉結果、交戰(zhàn)雙方互相破解彼此的工具等。這些大都是黑客的“杰作”,而它們對日益數字化的世界所造成的影響才剛剛被察覺。
我接觸或者共事過的網絡安全人員可能有數萬名,涉及Null-Byte網絡社區(qū)以及政府的幾乎每一個部門。通過這些經歷我了解到,很多有遠大抱負的網絡安全人員對于Linux系統(tǒng)都毫無經驗或了解甚少,而這種經驗上的欠缺正是他們成為安全專家所面臨的主要障礙。幾乎所有“最好”的黑客工具都是在Linux系統(tǒng)中編寫的,因此一些基本的Linux系統(tǒng)操作技能是成為專業(yè)網絡安全人員的條件。我編寫本書的目的正是幫助那些有遠大抱負的網絡安全人員克服這一障礙。
黑客攻防是IT行業(yè)內非常高深的領域。正因如此,從事網絡安全工作需要對IT概念和技術有廣泛而深入的理解,Linux系統(tǒng)正是其中最基本的一項。如果你想從事網絡安全方面的工作,那么我強烈建議你在使用和理解Linux系統(tǒng)方面投入一定的時間和精力。
本書并不是針對資深網絡安全人員或經驗豐富的Linux系統(tǒng)管理人員而編寫的。相反,本書的目標讀者是那些在黑客攻防、信息安全和滲透測試領域剛剛起步的人。同時,本書不會對Linux系統(tǒng)或黑客攻防進行完整論述,而只是進行入門級介紹。本書從Linux系統(tǒng)的基本內容開始,擴展講解了一些基本的bash和Python腳本編程技術。在適當的地方,我會嘗試通過一些網絡攻防實例來介紹Linux系統(tǒng)原理。
這里,我們將回顧一下信息安全領域白帽黑客行為的發(fā)展歷程,并且詳細介紹安裝虛擬機的流程,以便讀者能夠在不卸載當前操作系統(tǒng)的情況下,在自己的系統(tǒng)上安裝Kali Linux系統(tǒng)。
本書內容
在本書的前半部分,你將熟悉Linux系統(tǒng)的基本概念。
第1章將引領你熟悉文件系統(tǒng)和終端,并介紹一些基本命令。第2章將為你展示如何通過文本操作來對軟件及文件進行查找、檢查和修改。
第3章將介紹如何管理網絡,包括網絡掃描、查看連接信息以及隱藏網絡和DNS
信息。
第4章將介紹如何添加、移除和更新軟件,以及如何簡化系統(tǒng)。在第5章中,你將學習如何通過文件和目錄權限操作來控制訪問,以及一些用來實現權限提升的技術。
第6章將介紹如何管理進程,包括啟用和停止進程,以及分配資源來實現更高的控制權限。在第7章中,你將學習如何管理環(huán)境變量來實現最佳性能、便捷性乃至隱匿性,包括查找和過濾變量,更改PATH變量,以及創(chuàng)建新環(huán)境變量。
第8章將介紹bash腳本編程,這對于任何認真鉆研的網絡安全人員來說都是一項重要的技能。你將學習bash的基本內容,并創(chuàng)建一個腳本,用來對稍后將要進行滲透測試的目標端口進行掃描。
第9章和第10章將介紹一些的文件系統(tǒng)管理技能,教你如何對文件進行壓縮和存檔以保持系統(tǒng)潔凈,如何復制整個存儲設備,以及如何獲取文件和已連接磁盤的相關信息。
本書后半部分將深入介紹黑客攻防的相關主題,從而針對相應的攻擊進行有效的防御。在第11章中,你將了解黑客會如何利用和操控日志系統(tǒng)來獲取目標活動信息,并且掩蓋行蹤。第12章將介紹三個核心Linux系統(tǒng)服務:Apache 網絡服務器、OpenSSH和MySQL。你將學習創(chuàng)建一個網絡服務器、構建一個樹莓派偵察設備,并且學習數據庫及其漏洞等相關內容。第13章將展示如何通過代理服務器、Tor網絡、VPN連接和加密電子郵件來實現安全和匿名。
第14章將介紹無線網絡的相關內容。你將學習基本的網絡命令,之后將了解黑客會如何破解Wi-Fi接入點,如何探測并連接藍牙信號,從而有效遏制這類攻擊。
第15章將從內核工作原理以及黑客會如何利用Linux系統(tǒng)驅動的視角來深入剖析Linux系統(tǒng)本身。在第16章中,你將學習的調度技能,以實現腳本自動化。
第17章將講解Python語言的核心概念,進而引導你學習如何編寫兩款網絡安全工具:一個用于監(jiān)控TCP/IP連接的掃描器和一個簡單的口令破解器。
白帽黑客行為介紹
隨著近年來信息安全行業(yè)的發(fā)展,白帽黑客行為呈現急劇增長的趨勢。白帽黑客行為是指以發(fā)現脆弱性和改善安全性為目的而嘗試對系統(tǒng)進行滲透測試的行為。
滲透測試
隨著組織的安全意識越來越強,以及安全漏洞所導致的后果的嚴重性呈指數級增長,很多大型組織都開始考慮將安全服務承包出去。這些關鍵的安全服務之一就是滲透測試。從本質上來說,滲透測試就是以揭露一家公司網絡和系統(tǒng)的漏洞為目的而進行的一次受委托的合法攻擊。
一般來說,組織會先通過漏洞評估來發(fā)現其網絡、操作系統(tǒng)和服務中的潛在漏洞。這里強調“潛在”,是因為這種漏洞掃描結果中會包含大量的誤報(即所謂的漏洞實際并不存在)。而滲透測試人員的任務就是嘗試對這些漏洞進行攻擊或滲透測試。只有這樣,組織才能知道漏洞是否真實存在,然后投入時間和金錢來修復真正的漏洞。
譯者序
前言
第1章 基礎入門 1
1.1 術語和概念介紹 1
1.2 Kali系統(tǒng)概覽 2
1.2.1 終端 3
1.2.2 Linux文件系統(tǒng) 4
1.3 Linux系統(tǒng)基本命令 5
1.3.1 利用pwd命令查看當前位置 5
1.3.2 利用whoami命令查看當前登錄
用戶 5
1.3.3 在Linux文件系統(tǒng)中進行定位
導覽 6
1.3.4 獲取幫助 7
1.3.5 利用man命令查閱參考手冊頁面 8
1.4 查找 9
1.4.1 利用locate命令進行搜索 9
1.4.2 利用whereis命令查找二進制
程序 9
1.4.3 利用which命令在PATH變量中
查找二進制程序 9
1.4.4 利用find命令執(zhí)行更強大的
搜索 10
1.4.5 利用grep命令進行過濾 11
1.5 文件與目錄修改 12
1.5.1 創(chuàng)建文件 12
1.5.2 創(chuàng)建目錄 14
1.5.3 復制文件 14
1.5.4 重命名文件 14
1.5.5 刪除文件 15
1.5.6 刪除目錄 15
1.6 總結 15
第2章 文本操作 17
2.1 查看文件 17
2.1.1 獲取文件頭部內容 18
2.1.2 抓取文件尾部信息 18
2.1.3 標注行號 19
2.2 利用grep命令進行文本過濾 20
2.3 利用sed命令進行查找和替換 21
2.4 利用more和less命令查看文件 22
2.4.1 利用more命令控制顯示 22
2.4.2 利用less命令顯示和過濾 23
2.5 總結 24
第3章 網絡分析與管理 25
3.1 利用ifconfig命令分析網絡 25
3.2 利用iwconfig命令檢查無線網絡
設備 26
3.3 更改網絡信息 27
3.3.1 改變IP地址 27
3.3.2 改變網絡掩碼和廣播地址 27
3.3.3 偽造MAC地址 28
3.3.4 從DHCP服務器分配新IP地址 28
3.4 操控域名系統(tǒng) 29
3.4.1 利用dig命令測試DNS 29
3.4.2 改變DNS服務器 30
3.4.3 映射自身IP地址 31
3.5 總結 32
第4章 軟件添加與刪除 34
4.1 利用apt處理軟件 34
4.1.1 搜索軟件包 34
4.1.2 添加軟件 35
4.1.3 刪除軟件 35
4.1.4 更新軟件包 37
4.1.5 升級軟件包 37
4.2 向sources.list文件中添加軟件倉庫 38
4.3 使用基于GUI的安裝器 39
4.4 利用git安裝軟件 41
4.5 總結 41
第5章 文件與目錄權限控制 43
5.1 不同用戶類型 43
5.2 賦予權限 43
5.2.1 賦予單獨一個用戶所有權 44
5.2.2 賦予一個群組所有權 44
5.3 查看權限 45
5.4 更改權限 46
5.4.1 利用八進制記數法更改權限 46
5.4.2 利用UGO方法更改權限 48
5.4.3 為一個新工具賦予根執(zhí)行權限 48
5.5 利用掩碼方法設置更為安全的默認
權限 49
5.6 特殊權限 50
5.6.1 利用SUID賦予臨時根權限 50
5.6.2 利用SGID賦予根用戶群組權限 51
5.6.3 過時的黏滯位 51
5.6.4 特殊權限和權限提升 51
5.7 總結 53
第6章 進程管理 54
6.1 查看進程 54
6.1.1 通過進程名稱進行過濾 55
6.1.2 利用top命令找到占用資源最多的
進程 56
6.2 管理進程 57
6.2.1 利用nice命令修改進程優(yōu)先級 57
6.2.2 “殺死”進程 59
6.2.3 后臺運行進程 60
6.2.4 將進程移至前臺運行 60
6.3 調度進程 61
6.4 總結 62
第7章 用戶環(huán)境變量管理 63
7.1 查看和修改環(huán)境變量 63
7.1.1 查看所有環(huán)境變量 64
7.1.2 查找特定變量 64
7.1.3 修改一個會話的變量值 65
7.1.4 永久修改變量值 65
7.2 修改shell提示符 66
7.3 修改PATH變量 67
7.3.1 向PATH變量中添加路徑 67
7.3.2 替換PATH變量的方式 68
7.4 創(chuàng)建一個用戶定義的變量 69
7.5 總結 69
第8章 bash腳本編程 71
8.1 bash速成 71
8.2 第一個腳本程序:"Hello,
Hackers-Arise!" 72
8.2.1 設置執(zhí)行權限 73
8.2.2 運行HelloHackersArise 73
8.2.3 利用變量和用戶輸入來添加功能 74
8.3 你的第一個腳本:掃描開放端口 75
8.3.1 任務目標 76
8.3.2 一個簡單的掃描器 76
8.3.3 改進MySQL掃描器 77
8.4 常見的內建bash命令 79
8.5 總結 80
第9章 壓縮存檔 81
9.1 什么是壓縮 81
9.2 歸檔文件 82
9.3 壓縮文件 83
9.3.1 利用gzip進行壓縮 84
9.3.2 利用bzip2進行壓縮 84
9.3.3 利用compress命令進行壓縮 85
9.4 創(chuàng)建存儲設備的逐位或物理副本 85
9.5 總結 86
第10章 文件系統(tǒng)與存儲設備管理 88
10.1 設備目錄/dev 88
10.1.1 Linux系統(tǒng)如何表示存儲設備 89
10.1.2 驅動器分區(qū) 90
10.1.3 字符設備和塊設備 91