知識源:https://github.com/OpenCyberTranslationProject/TP1
警告:完善的教育環境應該自己主動去閱讀知識源,本博客更多的是用於沉淀,有的引子,上下文會跳過,請知曉。跳過的信息,比如:工具下載,安裝,前景現狀,厲害關系等。
本質上來說,科技家都是行動派。他們經常觸摸和玩弄一些實驗,希望創造並有時可能會伴隨預料之外的不可控情況出現,破壞了一些事物。他們思考之后,會直接動手去證明用結果和總結來反駁理論中的長篇大論。此書從本質入手,更多的去覆蓋知識面,而不是把某一個知識點解釋得像一本書一樣厚。
介紹術語和概率
二進制文件 可執行的文件,類似windows中可執行文件。二進制文件通常位於/usr/bin或usr/sbin目錄中,包括ps,cat,ls和cd等實用程序以及無線應用程序黑客工具aircrackng和入侵檢測系統(IDS)Snort
區分大小寫 linux區分大小寫。如果您收到錯誤消息“找不到文件或目錄”,並且您確定文件或目錄存在,則可能需要檢查您的大小寫。
目錄 與windows中的文件夾相同。目錄提供了一種組織文件的方式,通常是采用分層方式。
Home 每個用戶都有自己的/home目錄,這默認情況下保存您創建的文件的位置。
kali linux 是專為滲透測試而設計的linux發行版。它預裝了數百種工具,可以節省自己下載和安裝它們所需的時間。在撰寫本文時,使用最新版本為kali 2018.2,於2018年4月首發。
root linux擁有管理員或超級用戶賬戶,專為可以在系統上執行任何操作的受信任人員使用而設計。這包括重新配置系統,添加用戶和更改密碼等內容。在linux中,該賬戶稱為root。作為黑客或測試者,您通常會使用root賬戶來控制系統。實際上,許多黑客工具都要求您使用root賬戶。
腳本 在解釋環境中運行的一系列命令,可將每行轉換為源代碼。許多黑客工具都是簡單的腳本。腳本可以使用bash解釋器或任何其他腳本語言解釋器運行,例如python,perl或ruby。python是目前黑客中最受歡迎的解釋器。
shell 在linux中運行命令的環境和解釋器。最廣泛使用的shell是bash,它代表bourneagain shell,但其他流行的shell包括C shell和Z shell。本書中專門使用bash shell。
終端 命令行界面(CLI)
kali之旅
登陸界面,賬戶是root,默認密碼是toor 要更改密碼,使用命令passwd
終端 CTRL-ALT-T 此終端打開命令行環境(稱為shell),使您可在底層操作系統上運行命令並編寫腳本。雖然linux有許多不同的shell環境,但最受歡迎的是bash shell,它也是kali和許多其他linux發行版中的默認shell。
linux文件系統
linux文件系統結構與windows有些不同。它在文件系統的基礎上沒有物理驅動器(例如C:驅動器),使用邏輯文件系統。在文件系統結構的最頂層是/,被稱為文件系統的根。
/root root用戶的主目錄
/etc 通常包含linux配置文件 - 控制程序啟動時間和方式的文件
/home 用戶的主目錄
/mnt 將其他文件系統附加或安裝到文件系統的位置
/media CD和USB設備通常連接或安裝到文件系統的位置
/bin 其中包含應用程序二進制文件
/lib lib庫文件(與windows dll類似的共享程序)
這些目錄是本書中的關鍵。
在開始之前,知道在執行例行任務時不應該以root用戶身份登錄也很重要,當你以root身份登錄時,任何攻擊你的系統的人(黑客有時會被黑客入侵)會立即獲得root權限。
LINUX基本命令
用PWD查看當前目錄
要導航到新目錄,通常需要知道你現在的位置。顯示當前工作目錄使用命令pwd
使用whoami查看登錄用戶
瀏覽linux文件系統
使用cd更改目錄 cd /etc
在文件結構中向上移動一級 cd .. 二級 cd .. .. 移動到根 cd /
使用ls列出目錄的內容
這與windows中的dir命令類似
列出目錄中包含的文件和目錄。也可以在任何特定目錄上使用此命令。例如,ls /etc顯示/etc目錄中的內容。
ls -l 代表long,稱為長列表。
ls -la 要顯示隱藏文件,請添加小寫-a
獲取幫助
每個命令,應用程序或實用程序都在linux中有一個專用的幫助文件,為其使用提供指導。
aircrack-ng - help 許多應用程序支持所有三個選項 -help -h -?
使用man引用手冊頁
大多數命令和應用程序都有一個手冊
man aircrack-ng ENTER鍵滾動瀏覽 PG DN和PG UP上下翻頁 Q退出
搜索查找
使用locate搜索 lacote aircrack-ng 遍歷整個文件系統找關鍵字 這個命令不完美,可能剛剛幾分鍾或幾個小時前創建的文件,在第二天才會搜到
用whereis查找二進制文件
whereis aircrack-ng 返回二進制文件,源和手冊頁
用which在PATH變量中查找二進制文件
PATH保存操作系統在命令行執行的命令目錄
命令行輸入aircrack-ng時,操作系統怎么知道這個命令在哪里,通過看PATH變量來知道在哪個目錄
which aircrack-ng
使用find執行更強大的搜索
如果想在根目錄中搜索一個名為apache2的文件,輸入以下命令
kali >find / -type f -name apache2 f表示普通文件
比如正在尋找配置文件,可以在/etc目錄中開始搜索
kali >find /etc -type f -name apache2
find只顯示確切的名稱匹配,擴展名找不到,比如apache2.conf則找不到。使用通配符 * . , ? []
kali >find /etc -type f -name apache2.*
快速查看通配符
假設我們正在搜索包含cat,hat,what和bat的文件目錄。
?表示單個字符 ?at 會找到 hat,cat和bat
*表示任意長度的任何字符
[b,c]匹配方括號內顯示的字符
用grep過濾
當輸出從一個命令傳到另一個命令時,用grep命令。linux允許我們獲取一個命令的輸出並將其作為輸入發送到另一個命令。這叫管道 |,使用它執行此操作。
ps命令用於顯示有關計算機上運行的進程信息。
kali > ps aux aux參數指定要顯示的進程信息
如果只是想找到一個進程來查看它是否正在運行呢?
kali >ps aux | grep apache2
修改文件和目錄
創建文件 cat命令通常用於顯示文件的內容,但也可用於創建小文件。要創建更大的文件,最好在文本編輯器(如vim,emacs,leafpad,gedit或kate)中輸入代碼,然后另存為。
用 > 重定向功能來創建文件
cat > hackingskills 回城以后,等待你開始輸入內容,其他提示都將消失。要退出並返回提示,按CTRL-D
hacking is the most valuable skill set of the 21st century!
查看hackingskills中的內容時,輸入命令
cat hackingskills
要向文件添加或附加更多內容,可使用雙重定向 >> 如果要覆蓋以前的內容 用單重定向 >
cat >> hackingskills
everyone should learn hacking
用touch創建文件
此命令最初開發是用來用戶只需touch文件即可更改某些詳細信息,例如創建或修改日期。但是,該文件不存在,則默認情況下會創建該文件。
touch newfile 創建文件newfile
創建目錄
mkdir make directory
mkdir newdirectory 創建目錄
復制文件
cp命令,在新的目錄位置創建文件的副本,並保留舊文件
touch oldfile
重命名文件是可選的,只需要將新的名稱加到目錄路徑末尾即可。
cp oldfile /root/newdirectory/newfile
重命名文件
不幸的是,linux沒有專門用於重命名文件的命令。使用mv命令可用於將文件或目錄移動到新的目錄位置,或者為現有文件重命名
mv newfile newfile2
刪除文件
rm newfile2
刪除目錄
rmdir newdirectory 重要的是要注意rmdir不會刪除非空的目錄
如果想一次性刪除一個目錄及其下的內容,可以在rm之后使用-r參數
rm -r newdirectory