誰來教我滲透測試——黑客必須掌握的Linux基礎

菜鳥小白的學習分享發表於2020-07-31

上一篇我們學習了Windows基礎,今天我們來看一看作為一名滲透測試工程師都需要掌握哪些Linux知識。今天的筆記一共分為如下三個部分:

  1. Linux系統的介紹

  2. Linux系統目錄結構、常用命令

  3. 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開始表示。

 

image

 

檔案系統型別

  • 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地址

相關文章