上一篇我們學習了Windows基礎,今天我們來看一看作為一名滲透測試工程師都需要掌握哪些Linux知識。今天的筆記一共分為如下三個部分:
-
Linux系統的介紹
-
Linux系統目錄結構、常用命令
-
Linux系統網路配置
Linux系統的介紹
Linux的定義:
- 是由眾多程式設計師通過Internet協作開發的開源(open source)系統,可以執行在PC機上的作業系統,風格和Unix類似。
Linux的系統結構:
- Linux作業系統由核心及應用程式組成,不同的廠商根據各自的需要將各種應用軟體和Linux核心一起打包形成一個Linux發行版本(distribution)。
常見的發行版本:
-
RedHat:面向商業市場的Linux發行版,有伺服器版本,支援眾多處理器架構,包括x86和x86_64。
-
Centos:一款企業級Linux發行版,使用紅帽企業級Linux中的免費原始碼重新構建而成
-
OpenSuSe:免費的Linux版本,自帶Yast軟體管理工具
-
Kali:Debian的衍生版,Kali旨在用於滲透測試,隨帶許多滲透測試工具。
-
Ubuntu:Debian的衍生版,一款深受市場歡迎的免費作業系統,在伺服器、雲端計算,甚至是移動裝置上都很常見。
-
Debian:執行極其穩定,非常適合用於伺服器
-
Gentoo:系統包含眾多軟體包,Gentoo並非以預編譯的形式出現,而是每次需要針對每個系統進行編譯,適合學習Linux,瞭解Linux作業系統的內部運作原理
-
Linpus:
-
Mandrake:
-
Caldera:
-
Turbolinux:
Linux的核心版本號:
- 由Linux核心專案團體統一進行釋出,XX.YY.ZZ。其中“XX”代表了主版本號,“YY”代表了次版本號,若為奇數則表示為開發版本,為偶數則是穩定版本。
Linux下磁碟分割槽表示:
-
Linux中將硬碟 、分割槽等裝置均表示為檔案。
-
舉例:“/dev/hda5”
- 其中“/dev”代表硬體裝置檔案所在的目錄;
-
後面的“hd”表示磁碟型別,“hd”表示IDE裝置,“sd”表示SCSI裝置;
-
後面的“a”表示磁碟順序號,以字母a、b、c……表示;
-
最後的數字表示分割槽的順序號,以數字1、2、3……來表示,其中主分割槽是1-4,最多四個主分割槽,邏輯分割槽從5開始表示。
檔案系統型別
-
Linux中預設使用的檔案型別:
-
EXT3,第三代擴充套件(Extended)檔案系統
-
SWAP,交換檔案系統L
-
-
inux支援的其它檔案型別:
-
FAT16、FAT32、NTFS
-
XFS、JFS
-
……
-
Linux的目錄結構和常用命令
Linux的目錄結構
-
bin:普通使用者和管理使用者可以執行的命令
-
sbin:管理員使用者才能執行的命令
-
dev:硬體裝置檔案所在的目錄
-
boot:系統的配置檔案、引導配置檔案
-
etc:系統和應用服務的配置檔案
-
home:普通使用者的家目錄,相當於Windows中的users
-
lib:庫目錄
-
media:掛載光碟和u盤等一些外部介質的目錄
-
mnt:和media類似
-
opt:用來安裝軟體程式的目錄
-
proc:隨著開機生成的一些程式資訊、配置資訊啥的
-
root:root使用者的家目錄
-
selinux:對程式進行控制的安全性保證目錄
-
srv:
-
sys:存放系統的目錄
-
tmp:
-
usr:也是裝軟體的目錄
-
var:日誌目錄或者網站的根目錄都在這個下面
Linux的常用命令
Linux命令:
- 用於實現某一類功能的指令或程式,命令的執行依賴於直譯器程式(例如:/bin/bash)
Linux命令的分類:
-
內部命令:屬於shell直譯器的一部分
-
外部命令:獨立於shell直譯器之外的程式檔案
Linux命令的通用命令格式:
-
命令字 【選項】 【引數】
-
選項及引數的含義
-
選項:用於調節命令的具體功能。
-
以“-”引導短格式選項(單個字元),例如“-l”;
-
以“--”引導長格式選項(多個字元),例如“--help”;
-
多個短格式選項可以寫在一起,例如“-al”
-
引數:命令操作的物件,例如檔案、目錄名等
-
命令列編輯的幾個輔助操作:
-
Tab鍵:自動補齊
-
反斜槓“\”:強制換行
-
快捷鍵Ctrl+U:清空至行首
-
快捷鍵Ctrl+K:清空至行尾
-
快捷鍵Ctrl+L:清屏
-
快捷鍵Ctrl+C:取消本次命令編輯
獲得命令幫助
-
內部命令help:檢視bash內部命令的幫助資訊
-
命令“--help”選項:適用於大多數外部命令
-
man工具:安裝man工具後使用man命令進行查詢
檢視核心資訊——uname
-
檢視系統相關資訊
-
常用的命令選項
-
-a:顯示主機名、核心版本、硬體平臺等詳細資訊
-
-r:顯示核心版本
-
檢視系統主機名——hostname
- 檢視主機的完整名稱,包含主機名稱、所在域的名稱
檢視系統IP資訊——ifconfig
- 檢視系統所有網路卡的IP地址、mac地址等等
檢視系統CPU資訊
- cat /proc/cpuinfo
檢視記憶體資訊
- cat /proc/meminfo
關機及重啟操作
-
關機操作——shutdown -h now、poweroff、halt
-
重啟操作——shutdown -r now、reboot
檢視及切換目錄
-
檢視當前目錄路徑——pwd(Print Working Directory)
-
切換工作目錄——cd(Change Directory)
目錄操作命令——ls
-
列表顯示目錄下的內容
-
常用命令選項:
-
-l:以長格式顯示
-
-a:顯示所有子目錄和檔案的資訊,包括隱藏檔案
-
-A:類似於“-a”,但不顯示“.”和“..”目錄的資訊
-
-d:顯示目錄本身的屬性
-
-h:以更易讀的位元組單位(K、M等)顯示資訊
-
-R:遞迴顯示內容
-
--color:以顏色區分不同型別檔案
-
目錄操作命令——du
-
統計目錄及檔案的空間佔用情況
-
常用命令選項:
-
-a:統計時包括所有的檔案,而不僅僅只統計目錄
-
-h:以更易讀的位元組單位(K、M等)顯示資訊
-
-s:只統計每個引數所佔用空間總的大小
-
建立目錄命令——mkdir
- 建立新的目錄(Make Directory)
建立檔案命令——touch
-
新建空檔案,或更新檔案時間標記
-
格式:touch 檔名
建立連線檔案——ln
-
為檔案或者目錄建立連結(Link)
-
格式:ln [-s] 原始檔或目錄 連結檔案或目標目錄
-
常用命令選項:
- -s:建立符號連結檔案(省略此項則建立硬連結)
複製檔案或目錄——cp
-
複製檔案或目錄
-
常用命令選項:
-
-r:遞迴複製整個目錄樹
-
-p:保持原檔案的屬性不變
-
-f:強制覆蓋目標同名檔案或目錄
-
-i:需要覆蓋檔案或目錄時進行提醒
-
刪除檔案或目錄——rm
-
常用命令選項:
-
-f:強制刪除檔案或目錄,不進行提醒
-
-i:刪除檔案或目錄時提醒使用者確認
-
-r:遞迴刪除整個目錄樹
-
移動目錄或檔案——mv
-
如果目標位置與源位置相同,則相當於改名
-
格式:mv [選項] 原始檔或目錄 目標檔案或目錄
查詢檔案或目錄——find
-
格式:find [查詢範圍][查詢條件]
-
常用查詢條件:
-
-name:按檔名稱查詢
-
-size:按檔案大小查詢
-
-user:按檔案屬主查詢
-
-type:按檔案型別查詢
-
檔案編輯——vi
-
vi是一個較大的unix命令,在啟動的時候也有它自己的選項和引數
-
基本語法:vi [-options]+[n]] [file]
-
常用的選項:
-
-r:用於恢復系統突然崩潰時正在編輯的檔案
-
-R:用於以只讀方式開啟檔案
-
+n:用來指明進入vi後直接位於檔案的第n行,如果不指定n,則位於第一行
-
-
文字插入:
-
在命令列模式下使用某些命令會導致vi馬上進入檔案插入模式,這些命令包含:
-
i(在游標錢插入文字)
-
I(在本行開始插入檔案)
-
a(在游標後附件文字)
-
A(在本行行末附件文字)
-
o(在游標下插入新行)
-
O(在游標上插入新行)
-
-
-
搜尋和替換
-
/string:向前搜尋指定字串,搜尋時忽略大小寫:set ic
-
n:搜尋指定字串的下一個出現位置
-
:%s/old/new/g:全文範圍內替換指定字串
-
:n1,n2s/old/new/g:在一定範圍內替換指定字串
-
-
命令模式下:
-
dd:刪除游標所在行,若數字n+dd則表示刪除游標所在行及往下的n-1行
-
u:取消上一命令
-
.:重複上一命令
-
-
底行模式下:
-
w:儲存
-
q:退出
-
!:強制操作
-
cat命令:
-
顯示出檔案的全部內容
-
-n:給輸出的所有行加上編號
-
cat 1 2 > 3:合併檔案
-
統計檔案中的單詞數量 位元組——wc
-
常用選項:
-
-l:統計行數
-
-w:統計單詞數
-
-c:統計字元數
-
預設顯示所有的
-
檢視歷史命令——history
壓縮命令——gzip、bzip2
-
只針對單個檔案壓縮
-
常用選項:
-
-9:顯示高壓縮比
-
-d:釋放壓縮檔案
-
-
使用方式:
-
gzip 檔名 壓縮檔案, 格式為字尾有.gz
-
bzip2 檔名 壓縮成的檔名, 格式為字尾有.bz2 它相對於gzip壓縮率更高
-
歸檔命令——tar
-
舉例:
-
tar -tvf 4.tar -r:追加tar檔案至歸檔結尾
-
tar -rvf 4.tar 5:把5追加入4.tar
-
-
常用選項:
-
-c:建立歸檔檔案,副檔名為tar
-
-x:輸出詳細資訊
-
-f:表示使用歸檔檔案
-
-x:解開歸檔檔案
-
-t:列表檢視包內的檔案(不釋放解包)
-
-p:解包是保留原始檔案及目錄的許可權
-
-C:解包是指定釋放的目標資料夾
-
-z:呼叫gzip程式,進行解壓或者壓縮
-
-j:呼叫bzip2程式,進行解壓或者壓縮
-
-
壓縮歸檔使用方式:
-
tar -cvzf test.tar.gz 被壓縮的檔案1 被壓縮的檔案2:建立歸檔壓縮檔案的字尾為gz
-
tar -cvjf test.tar.bz2 被壓縮的檔案1 被壓縮的檔案2:建立歸檔壓縮檔案的字尾為bz2
-
-
解壓和解除歸檔使用方式:
-
tar -xvzf test.tar.gz -C /usr/src:解壓釋放歸檔到/usr/src
-
tar -xvzf test.tar.bz2 -C /usr/src:解壓釋放歸檔到/usr/src
-
安裝、升級、解除安裝rpm軟體包
-
安裝或升級rpm軟體
-
格式:rpm [選項] rpm包檔案
-
用法:不同選項適用於不同情況
-
-i:安裝一個新的rpm軟體包
-
-U:升級某個rpm軟體,若原本未裝,則進行安裝
-
-F:更新某個rpm軟體,若原本未裝,則放棄安裝
-
-
解除安裝指定的rpm軟體
- 格式:rpm -e 軟體名
-
檢視安裝的軟體
- 格式:rpm -aq [軟體名]
編譯安裝過程
-
下載原始碼安裝包檔案有如下步驟:
-
tar 解包,解壓並釋放原始碼包到指定目錄
-
./configgure 配置,設定安裝目錄、安裝模組等選項
-
make 編譯,生成可執行的二進位制檔案
-
make install 安裝,複製二進位制檔案到系統,配置應用環境
新增使用者賬號——useradd
-
格式:useradd [選項] 使用者名稱
-
常用命令選項:
-
-u:指定UID標記號
-
-d:指定宿主目錄,預設為“/home/使用者名稱”
-
-e:指定賬號失效時間
-
-g:指定使用者的基本組名(或UID號)
-
-G:指定使用者的附件組名(或GID號)
-
-M:不為使用者建立並初始化宿主目錄
-
-S:指定使用者的登入shell
-
刪除使用者賬號——userdel
-
格式:userdel [-r] 使用者名稱
- 新增-r選項是,表示連使用者的宿主目錄一併刪除
Linux系統的網路配置
檢視網路介面資訊——ifconfig
-
檢視所有活動網路介面的資訊——ifconfig
-
檢視指定網路介面資訊——ifconfig 網路介面名
網路卡型別
-
eth0:乙太網
-
lo:(虛擬)迴環裝置
-
ppp0:使用PPP協議的串列埠裝置(通常指調變解調器)
-
tr0:令牌環(Token Ring)
-
fddi0:光纖
檢視路由——route
- 格式:route [-n]
設定路由——route
-
刪除路由表中的預設閘道器記錄
- 格式:route del default gw IP地址
-
向路由表中新增預設閘道器記錄
- 格式:route add default gw IP地址
-
新增到指定網段的路由記錄
- 格式:route add -net 網段地址/掩碼位數 gw IP地址
-
刪除到指定網段的路由記錄
- 格式:route del -net 網段地址/掩碼位數 gw IP地址
檢視網路連線情況——netstat
-
檢視系統的網路連線狀態、路由表、介面統計等資訊
-
常用選項:
-
-a:顯示所有活動連線
-
-n:以數字形式顯示
-
-p:顯示程式資訊
-
-t:檢視TCP協議相關資訊
-
-u:檢視UDP協議相關資訊
-
-r:顯示路由表資訊
-
網路介面配置檔案
-
/etc/sysconfig/network-scripts/目錄下的
-
ifcfg-eth0:第一塊乙太網卡的配置檔案
-
ifcfg-eth1:第二塊乙太網卡的配置檔案
-
……
啟用、禁用網路介面配置
-
network網路服務的重啟、禁用、啟用和查詢狀態
-
service network restart:重啟
-
service network stop:禁用
-
service network start:啟用
-
service network status:查詢狀態
-
-
禁用、啟用網路介面
-
ifdown eth0
-
ifup eth0
-
域名解析配置檔案
-
/etc/resolv.conf:儲存了本季需要使用的DNS伺服器的IP地址
-
新增方式:nameserver ip地址