2016年9月22日 星期四

如何進行 Kali 核心版本升級?

Kali一直是我執行滲透測試的主要工作環境,但從1.x版開始,每次Kali升級核心版本,就必須重新安裝及設定環境、腳本,讓我不勝其煩。我一直尋找原機升級核心的方法,但嘗試幾次升級,升級後系統都直接崩潰,感到十分挫折。
直到2016年,Kali啟用滾動更新機制,聽說可以一直更新核心版本,心中重新燒起一絲希望,經實際進行升級後,發現事情沒有想像的簡單,如果您的系統原本就使用 Kali 4.3.x 以上的核心版本,持續升級的成功率相當高,若不幸像我一樣想從 4.0.x版要升級到 4.6.x,就有些難度了,甚至會造成系統崩潰。底下的過程皆是在VMWare的虛擬機上的 Kali 4.0.4實作。
在進行核心升級之前,建議先備份虛擬機,或建立一份 snapshot,以便系統崩潰之後可以快速還原。

一、在進行滾動式核心升級之前,請先將現行系統升級到最新版,指令如下:
apt-get update
apt-get dist-upgrade         #過程中所有提問都採預設值即可
reboot
 如果升級之後無法以正常方式開機,請在開機選單中選擇「Advanced options for kali GNU/Linux」,然後從下一層選單中選擇「recovery mode」進入修復模式。
在修復模式下,執行
apt-get update
apt-get -f install
reboot

二、修改 /etc/apt/sources.lst,將原來的更新來源都註解掉,然後加入 「deb http://http.kali.org/kali kali-rolling main non-free contrib」 這一列是日後滾動更新的來源位址。
三、進行核心升級,這個過程視情況可能一回就成功,也可能要執行二、三回
apt-get update
apt-get upgrade          # 有的機器不執行也沒影響, 有的機器不執行,就無法升級成功
apt-get dist-upgrade          #過程中所有提問都採預設值即可
reboot
四、升級後,重新開機,使用 uname -a  查看是否順利將Kali核心版本提升到最新版本,有時升級後網卡 eth0 會不見了,利用ifconfig -a 會看到新的一片 ens?? 的網卡,而且不會自動連線,(有的系統並不會出現這個問題)。
請手動啟動此網卡,及配置網址:
 # 先讓這張網卡可以連線,以便進行後續更新
ifconfig ens33 up
dhclient ens33
# 確定網卡可以連線後,請執行
 apt-get update
apt-get -f install
如果用 uname -a 發現核心版本仍停留在原來的舊版本,請重新系統,再進行一次更新:
reboot     # 請先重新開機
apt-get update
apt-get dist-upgrade
reboot
五、當系統完成核心升級後,可以修改 /etc/udev/rules.d/70-persistent-net.rules 的內容,在裡頭加入「SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="<網卡的MAC>", NAME="eth0"」,重新開機後就可以找回原來的 eth0 網卡了。
六、若順利升級到 4.6.x版,以後只要定期執行
apt-get update
apt-get dist-upgrade
就能一直持續更新核心了。

升級過程中遇到的問題
這次共升級四臺虛擬機,發生三個升級失敗的問題, 分別如下:
第一臺是由4.5升級4.6,升級過程順利,也能正常開機,但在登入 X-Windows 後,只要一開啟虛擬終端機(terminal)就會被強迫登出, 而需要重新登入,這一來根本無法作業。
解決方法是進入修復模式,依序執行
 apt-get -f install
 apt-get update
apt-get upgrade

第二臺是4.0.4升級4.6,升級後,每次開機都會停留在「[ OK ] Started Update UTMP about System Runlevel Changes」,無法完成開機作業。就算利用 Ctrl+Alt+F2 切換到其他終端機,也會因為畫面閃爍而無法輸入指令。
解決方法是進入修復模式再依序執行
 apt-get -f install
 apt-get update
apt-get upgrade
reboot
apt-get update
apt-get dist-upgrade

第三、四臺也是4.0.4升級4.6,升級後,只是沒有圖形介面,因為我已移除XWindow,單純用來執行 nessus 服務及openvas 服務之用,這兩臺的情形皆相同,都是eth0被改成ens33,解決方式在上文中已提過了,就是 修改 /etc/udev/rules.d/70-persistent-net.rules 的內容

沒有留言:

張貼留言