前言
使用默認的Kali Linux設置來學習是可以的,但是我們通常要修改系統的一些基本設置,來最大化使用Kali平台的功能。
以下內容
網絡的基礎知識
使用圖形用戶界面來配置網卡
使用命令行來配置網卡
使用圖形用戶界面來配置網卡
使用命令行來配置無線網卡
啟動、停止和重啟Apache服務器
安裝FTP服務器
啟動、停止和重啟SSH服務器
掛載外置媒體
更新Kali
升級Kali
增加Debian軟件庫
網絡基礎知識
1、私有IP地址
路由器的內網接口(或網卡)有一股IP地址 192.168.1.1,這成為私有地址。因為它在互聯網上是無法使用的。
IP地址范圍 可以IP數量
10.0.0.0 至 10.255.255.255 16 777 216
172.16.0.0 至 172.31.255.255 1 048 576
192.168.0.0 至 192.168.255.255 65 536
私有地址,要連接到互聯網並能上網,路由器會使用一種叫做NAT(網絡地址轉換)的技術。它會將私有地址轉換成互聯網上可以使用的地址,這些地址通常是ISP提供的,並且分配到路由器的外網接口上(路由器的另一張網卡)。如果用戶視圖直接在互聯網上使用私有地址,而不經過帶有NAT技術的路由器,它的通信會失敗。因為互聯網上的路由器和設備會拒絕私有地址的訪問。
私有IP地址用在哪些場合?
在內部或私有網絡中,但是不能用在互聯網上。是DHCP分配的。
2、默認網關
路由器分出了兩個網絡,內網和外網。並且提供了一些基本的安全功能,例如一個基礎的防火牆。此外,路由器還提供了一個從內網訪問外網的途徑。因此,路由器的內網地址就是某兩台客戶端訪問外網的必經之路。這個地址稱作默認網關。
網關,就是將它看作是離開小鎮的唯一出口。
而,計算機也需要知道離開內網的出口,這就是默認網關。
3、域名服務器
這里,很簡單,不多贅述。
4、DHCP服務
在網絡領域里,沒有什么比DHCP更神奇的了,如果計算機已經配置為自動DHCP配置,那么用戶只需要插上網線就可以上網了。當計算機啟動網絡通信查找DHCP服務器時,會發送廣播請求尋找DHCP服務器。服務器會回復該客戶端,並指定請求計算機所需的配置,包括IP地址,默認網關,域名服務器和子網掩碼。在大部分情況下,這是配置網卡的好辦法。但是如果你在進行滲透測試,使用DHCP來配置你的網絡就會告訴整個網絡的人你已經登錄該網絡了。這通常不是什么好事情。
5、子網划分
通過對IP地址使用一個掩碼,我們就可以過濾出IP地址的一部分,然后用於尋址了。這里具體不多贅述。
6、Kali Linux默認配置
如前所述,大部分的滲透測試工程師、白帽子,並不想他們的網卡在接入網絡時發出通知。但這正是Kali Linux啟動並接入網絡中時會做的。當進行滲透測試的時候,使用者必須注意,插上網線之前應該禁用網卡,以避免不必要的通信。在自定義安裝時(無論是從硬盤、U盤或SD卡安裝),可以更改這個自動網絡設置。另一種方式是通過刻錄自定義的Live盤,配置成手動網絡配置。
使用圖形用戶界面來配置網絡接口
“Application” -> “System Tools” -> “Perferences” -> "Network Connections"
當然,有些版本,稍微有點出入。我的是Kali 2.0
自行,可以去設置,增加網卡等。
這里,不多贅述了。
使用命令行來配置網絡接口
理解如何使用命令行來配置,或者重新配置網絡適配器是非常重要的,當無法使用Linux圖形界面,或者通過終端窗口遠程登錄到一個系統上時這就非常有用了。在很多滲透測試的案例中,使用命令行來進行配置更改是唯一的選擇。這些更改需要提升賬戶權限,在Live發行版上,可以使用root賬戶來進行更改,在Kali Linux安裝版上,可以使用SDO命令。一旦提升了賬戶權限之后,就可以配置網卡了。
使用如下的命令查看計算機上的所有網卡和單個網卡的狀態:
ifconfig -a
這個命令會顯示所有網卡的當前配置。
停止第一個以太網適配器的命令
ifconfig eth0 down
啟動第一個以太網適配器的命令
ifconfig rth0 up
將適配器的IP地址從192.168.1.66改為192.168.1.22
ifconfig eth0 192.168.1.66 192.168.1.22
同時更改IP地址和子網掩碼,將IP地址設置為192.168.1.22,子網掩碼設置為255.255.0.0
ifconfig eth0 192.168.1.22 netmask 255.255.255.0
使用命令行來配置網卡並不需要比使用圖形用戶界面做更多的工作,所進行的設置也並非都保存在同一位置。如將默認網關更改為192.168.1.2,可以使用
route add default gw 192.18.1.2
DNS服務器設置是通過修改/etc/resolv.conf來實現的。也可以使用文本編輯器來修改文件,或者使用
echo nameserver 4.4.4.4 > /etc/resolv.conf
上面的命令會刪除已有的DNS服務器,並用4.4.4.4替換。要增加新DNS服務器,可以使用
echo nameserver 8.8.8.8 > /etc/resolv.conf
命令行配置DHCP
在這種模式下DHCP服務器會為網卡提供所有需要的配置設置。這對絕大多數最終用戶來說都是方便的,但是呢,對於滲透測試來說卻不理想,因為經過配置的系統會記錄在DHCP服務器的數據庫中。因此可以使用如下命令來在滲透測試時關閉DHCP自動配置。這里使用的是nano編輯器,你可以使用任意的編輯器輸入下面的文本。
nano /etc/networking/interfaces
# 將下面的行寫入文件
auto eth0
iface eth0 inet static
address {IP_Address}
netmask {netmask}
gateway { Gateway_IP_Address}
保存該文本文件並退出編輯器以完成修改,要使設置生效,可能需要停止再重新啟動以太卡。
要配置第一張網卡,可以使用
dhclient eth0
這條命令會自動將網卡配置成使用DHCP服務器提供的設置。
使用GUI來配置無線網卡
配置無線網卡同樣可以使用之前配置以太網接口所使用的GUI來完成。只需要在網絡連接對話框中選擇“Wireless”選項卡即可。
在這個選項卡,點擊“Add”,彈出“Editing Wireless connection1(假設當前我為第一個無線適配器)”。
連接名稱
默認的連接名是“Wireless connection”,后面跟着當前適配器的序號,比如Wireless connection1。可以自己更改為一個有意義的名稱。
自動連接復選框
當“connection automatically”復選框被勾選時,即便沒有用戶的交互,系統也會在啟動時自動連接無線網絡。就像前面提到的DHCP,這可能對絕大多數Linux用戶來說很方便。但是,對滲透測試來說並不是一個好的選擇,因為它會在連接到網絡時發出廣播。如果這個復選框被取消了,測試者就可以手動連接無線適配器了。
“Wireless”標簽頁
服務集標識符
服務集標識器是網絡的名字,即,SSID。用於邏輯識別一個無線網絡。每個網絡只有一個SSID,客戶端會用這個標識連接網絡。在有中心接入點的網絡中,SSID是由中心接入點設置的,網絡中的客戶端必須使用這個SSID才能連接到網絡中。在有多個接入點的網絡中,這些接入點的SSID必須相同才能互相通信。
服務集標識符是通過對多個無線接入點AP(AccessPoint)設置不同的SSID,並要求無線工作站出示正確的SSID才能訪問AP,這樣就可以允許不同群組的用戶接入,並對資源訪問的權限進行區別限制。
模式
無線網卡可以被配置成兩個模式,臨時模式(ad hoc)和基礎設施模式(infrastructure)。ad hoc模式的網絡通常是在沒有中心接入點進行網絡管理的情況下由計算機無線互連而成。在這種模式下,每個無線連接的配置都應該符合其他計算機的無線網絡配置才能建立起連接。在infrastructure模式下,中心接入點會管理每個連接到該網絡和服務集中其他計算機的客戶端。每個客戶端的配置都應該符合接入點定義的設置。這兩個模式的主要區別就是在ad hoc下沒有中心管理,而infrastructure模式下有一個接入點來管理網絡。
基本服務集標識符
基本服務集標識符,用來在infrastructure模式中識別接入點的MAC地址。和SSID的不同的是,每個接入點都會有唯一的BSSID,就像每個接入點都會有唯一的MAC地址。
設備MAC地址
設置MAC地址字段是用來將本配置指定在一個無線適配器上,對於有多個適配器的計算機來說這很方便。這個字段的下拉列表中會包括可用的無線適配器的MAC地址,用戶只需要為要配置的無線適配器選擇正確的MAC地址就可以了。
克隆MAC地址
很多時候滲透測試人員都會不想使用計算機所使用的適配器的真實MAC地址。可以非常簡單地繞開一些安全規程,比如MAC地址過濾,只允許指定MAC地址的系統連接到網絡。你也可以使用這種方法將自己的設備偽裝成網絡上的其他設備。
最大傳輸單元
MTU,這個很簡單,不多贅述。
“Wireless Security”標簽頁
安全下拉列表
Security下拉列表是用來選擇保護無線網絡安全的方式的。對於ad hoc網絡來說,網絡中的用戶決定了什么樣的安全設置是正確的,請確定每個客戶端的安全設置都和網絡中某計算機是一樣的。在infrastructure模式中,每個設置都必須設置為接入點指定安全設置。
有線等效保密
WEP是古老的安全方法,它使用基本的加密技術,可以提供與有線系統等效的安全性。WEP使用10位或26位16進制的密鑰來加密通信。有人發現WEP加密標准有安全缺陷,滲透測試人員可以輕易地破解大多數WEP密鑰。 IEEE802.1x標准中的動態WEP使用端口安全措施來為無線網絡提供額外的安全措施。
輕量級可擴展身份驗證協議
LEAP,這里不多贅述。
Wi-Fi網絡安全接入
WPA是一種接入技術,可以使用臨時密鑰完整性,TKIP協議和完整性檢查來提高無線網絡的安全性,使用了WPA的網絡比使用WEP的無線網絡更安全。而且WPA2還在最初的WPA標准上做了進一步加強,使用了更加健壯的加密算法,在WPA個人模式中,每個計算機都會使用一個用密碼生成的密鑰。
密碼和密鑰
這個很簡單,不多贅述。
“IPv4 Setting”標簽頁
這個很簡單,不多贅述。
Web服務器
Kali Linux中包括了一個易於配置的Apache Web服務器。擁有一個易於配置的Web服務器對於滲透測試人員的作用很大。例如,通過使用Web服務,測試者可以創建釣魚網站。通過使用社會工程學攻擊使得這些網站向用戶發送惡意代碼,配置服務器后門,向其他惡意程序發送指令等。在滲透測試中用到HTTP服務的地方還有很多。
使用GUI啟動、停止、重啟Apache服務
使用GUI是啟動、停止和重啟Web服務最簡單的方法。選擇Kali界面上方的“Application”,然后在下拉菜單中選擇“Kali Linux”,會出現相應的子菜單,從菜單中選擇“System Services”,最后在菜單中選擇“HTTP”,就會顯示出啟動、停止和重啟Apache服務的選項。
當選擇其中一項之后,就會彈出一個Shell窗口並在其中顯示Web服務現在的狀態。在默認安裝的Kali中,啟動和重啟Apache時會顯示一條錯誤信息,內容是“Could not reliably determine the server's fully domain name,using 127.0.0.1 for ServerName.”。這條錯誤現在不會引起問題,因為該Web服務器在本機IP上是可以訪問的。要修正這條錯誤,編輯/etc/apache2 目錄中的apache2.conf。在文件最后加上ServerName后面跟上服務器名,並保存文件。
ServerName localhost
當Apache服務器啟動或重啟之后,就可以通過在瀏覽器中輸入計算機IP地址來訪問默認網頁了。
使用命令行啟動、停止、重啟Apache服務
Apache HTTP服務器可以通過在命令/etc/init.d/apache2后跟上相應的動作請求來啟動、停止和重啟。
/etc/init.d/apache2 start
/etc/init.d/apache2 stop
/etc/init.d/apache2 restart
Apache默認網頁
這個,很簡單,不多贅述。
FTP服務器
文件傳輸協議FTP,需要注意的是,FTP並不會加密文件或計算機之間的通信信道,因此網絡上的文件傳輸是可以被監控者獲取的。
Kali Linux並不包括FTP服務器程序,你可以安裝一個FTP服務來讓系統間的文件傳輸變得更容易。Kali上可以安裝的FTP服務非常多,其中一個是Pure-FTPd。當然,其他的FTP服務也是可以使用的。你可以用apt-get來下載並安裝Pure-FTPd。
apt-get install pure-ftpd-common pure-ftpd
這個命令會安裝並設置FTP服務。此外還需一些小配置來保證Pure-FTP服務器可以正常工作。
cd /etc/pure-ftpd/conf
echo no > Bind
echo no > PAMAuthentication
echo no > UnixAuthentication
ln -s /etc/pure-ftpd/conf/PureDB/ /etc/pure-ftpd/auth/50pure
接下來需要創建FTP服務需要的用戶組和用戶,首先創建一個系統組
groupadd ftpgroup
接下來向新建的組里面添加新用戶。這個命令會讓添加的新用戶沒有訪問home目錄和登錄shell的權限
useradd -g ftpgroup -d /dev/null -s /bin/false ftpuser
為FTP文件新建一個目錄
mkdir -p /home/
在FTP目錄里面添加用戶目錄。在本例中,即將創建的用戶sam需要這樣一個目錄
mkdir /home/pubftp/sam
然后給FTP服務添加一個新的用戶和密碼。在本例中,新用戶是sam
pure -pw useradd sam -u fpgroup -d /home/pub/sam
接下來會提示你需要創建一個密碼
使用如下命令來更新Pure-FTPd的數據庫
pure-pw mkdb
最后用如下命令啟動FTP服務
service pure-ftpd start
啟動FTP之后,你可以這樣測試一下該服務
ftp { IP_Address }
在提示符中輸入用戶名sam和密碼。如果認證成功,就說明FTP服務器運行正常。否則,重啟計算機並嘗試再一次連接到FTP服務器。
關於使Pure-FTPd正常工作的必須步驟,請參考 http://samiux.blogspot.com/2011/08/howto-pure-ftpd-and-atftpd-on-backtrack.html
SSH服務器
SSH提供了一種更安全的遠程訪問Kali Linux的方式。SSH在通信的計算機之間提供一個安全的加密通道,這對滲透測試人員來說非常有用,它可以防止數據在傳輸過程中被網絡中的安全工具所檢測到,比如入侵檢測系統(IDS)和入侵防御系統(IPS)。
生成SSh密鑰
要安全地使用SSH,你需要生成密鑰來對通信加密,提高通信的安全性。要生成密鑰,在命令行中輸入如下命令。
首先,將原始的SSH密鑰從默認目錄中移走,但是不要刪除它們。
mkdir -p /etc/ssh/original_keys
mv /etc/ssh/ssh_host_* /etc/ssh/original_keys
cd /etc/ssh
生成新的SSH密鑰
dkpg-reconfigure openssh-server
啟動或者重啟SSH守護進程
service ssh start 或者 service ssh restart
使用Kali GUI管理SSH服務
SSH服務被內置在kali的圖形用戶界面的主文件結構中,你可以用和操作Apache相同的方式來操作它:選擇左上角的“Applicatin”,從下拉菜單中選擇“Kali Linux”,在彈出的子菜單中選擇“System Service”,然后從相應菜單中選擇“SSH”,就會顯示出啟動、停止和重啟SSH服務的選項。
使用命令行管理SSH服務
SSh服務也可以通過命令行來啟動、停止和重啟。只需要將start、stop和restart加在/etc/init.d/ssh后面就行了。
/etc/init.d/ssh start
/etc/init.d/ssh stop
/etc/init.d/ssh restart
遠程訪問系統
當在Kali系統中啟動SSH服務之后,就可以從H-Linux系統遠程訪問計算機了。在Linux系統中輸入如下命令來連接(如果用戶名為sam,計算機的IP地址是192.168.1.66)
在windows客戶端訪問SSH需要使用SSH客戶端。互聯網上可以找到很多此類客戶端,例如很常用的putty,你可以從http://putty.org下載。安裝客戶端之后,只需要填入Kali Linux的IP地址或主機名以及登錄證書就可以遠程連接到Kali計算機上了。
配置並訪問外置媒體
在Kali Linux中使用外置媒體,例如硬盤和拇指驅動器,比在Backtrack中容易的多。通常使用USB連接到計算機上的媒體都會被操作系統自動識別,如果沒有自動識別的話,可以使用下面的方法手動掛載驅動器。
手動掛載驅動器
要在Kali Linux中手動掛載驅動器,第一步是將物理設備連接到計算機上。然后打開終端並創建一個掛載點。要創建掛載點,首先需要提升賬戶的權限。如果計算機的root賬戶沒有啟動,也可以使用sudo 命令。下面的命令可以在media目錄中創建一個叫做newdrive的掛載點:
mkdir /media/