不會 C 語言也可以是資安高手,學好 Python 就能和駭客大戰!

(圖片來源:methodshop on Pixabay

(本文書摘內容出自《不會 C 也是資安高手 — 用 Python 和駭客大戰三百回合》,由 深智數位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題;首圖來源:methodshop on Pixabay。)

【為什麼我們挑選這本書】Python 近年來成為最熱門的程式語言之一,加上資安逐漸受到人們重視,阻擋駭客攻擊成為熱門議題之一,而在網路安全測試這塊,Python 就能應付大多數的狀況。

本文選自《不會 C 也是資安高手 — 用 Python 和駭客大戰三百回合》一書,作者李華峰擁有多年網路安全教學經驗,也累積相當多的實作開發案例,他將結合教學內容與實作經驗,說明 Python 在網路安全上的操作應用。(責任編輯:呂威逸)

在古早年代,想要成為資安高手,會 C 語言都算太「高階」了。許多病毒是遠古時代的大師用組合語言(想必很多讀者甚至什麼是組合語言都沒聽過吧!)一行一行手刻出來的。

但自物件導向這個範式在 20 年前成為唯一選擇之後,會 C 語言的高手也越來越少,然而隨著人工智慧及大數據的流行,資安領域需要的人才也越來越高段,你真的需要為了成為資安人員去學習一個很可能再也不會用到的 C 語言嗎?雖然學習一個新的程式語言永遠不是壞事,不過對於已經非常熟練 Python 的工程師來說,如果能用 Python 就完成 C 語言工程師能做的資安工作,就可以省下全新語法及關鍵字的學習,專心在資安和駭客身上,誰說只會 Python 不能作個稱職的資安高手?

網路安全測試的目標

網路安全滲透測試的目標包含一切和網路相關的基礎設施,其中包含

  1. 網路裝置,主要包含連接到網路的各種實體實體,如路由器、交換機、防火牆、無線存取點、伺服器、個人電腦等。
  2. 作業系統,是指管理和控制電腦硬體與軟體資源的電腦程式。舉例來說,個人電腦經常使用的 Windows 7、Windows 10 等,伺服器上經常使用的 Windows 2012 和各種 Linux。
  3. 實體安全,主要是指機房環境、通訊線路等。
  4. 應用程式,主要是為針對某種應用目的所使用的程式。
  5. 管理制度,這部分其實是全部目標中最為重要的,指的是為保障網路安全對使用者提出的要求和做出的限制。

網路安全滲透測試的成果通常是一份報告。這個報告中應當列出目標網路中存在的威脅,以及威脅的影響程度,並列出對這些威脅的改進建議和修復方案。另外需要注意的一點是,網路安全滲透測試並不能等於駭客行為。相比駭客行為,網路安全滲透測試具有以下幾個特點。

  1. 網路安全滲透測試是商業行為,要由客戶主動提出,並給予授權許可才可以進行。
  2. 網路安全滲透測試必須對目標進行整體性評估,進行盡可能全面的分析。
  3. 網路安全滲透測試的目的是改善使用者的網路安全機制。

你所需要的測試環境

針對網路安全,Windows 下的工具較少,通常我們會使用 Linux 系統來進行網路安全測試。Linux 的版本眾多,大家通常會想到的就是 Ubuntu、CentOS 等,但其實真正在資安上面最多人用的就是非常有名的 Kali Linux。

Kali Linux 是一個為專業人士所提供的滲透測試和安全稽核作業系統,它是由之前大名鼎鼎的 Back Track 系統發展而來。Back Track 系統曾經是世界上最佳秀的滲透測試作業系統,獲得了相當大的成功。之後 Offensive Security 對 Back Track 進行了升級改造,並在 2013 年 3 月推出了嶄新的 Kali Linux 1.0。

相比 Back Track,Kali Linux 提供了更多更新的工具。之後,Offensive Security 每隔一段時間都會對 Kali 進行更新,在 2016 年又推出了功能更為強大的 Kali Linux 2,包含 13 個大類超過 300 個程式,幾乎涵蓋了目前世界上所有優秀的滲透測試工具。如果讀者之前沒有使用過 Kali Linux 2,那麼相信在你開啟它的瞬間,絕對會被裡面數量許多的工具所震撼。

需要注意的一點是,Kali Linux 本身並不是一個新的作業系統,而是一個以 Debian 為基礎的 Linux 發行版本。如果讀者熟悉 Debian,那麼使用 Kali Linux 將十分容易。不過 Kali Linux 也提供了類似 Windows 的圖形化操作介面,即使此前完全沒有使用 Linux 的經驗,也可以輕易上手。

常用模組及資料通訊埠的介紹

Python 中內建了很多針對常見網路通訊協定的模組,這些模組對網路通訊協定的層次進行了封裝,這樣在撰寫網路安全滲透程式的時候就可以把精力都放在程式的邏輯上,而非網路實現的細節了。

以前可能需要上百行的程式現在可以輕輕鬆鬆地使用幾行程式來完成,這一切要歸功於這些常用模組,在很多的著名駭客工具中也都可以看見這些模組的身影,包括了、Socket 模組、python-nmap 模組和 Scapy 模組。

另外我們也常常利用 Python 收集下面的資訊,包括了:

  1. 目標主機是否線上。
  2. 目標主機所在網路的結構。
  3. 目標主機上開放的通訊埠,如 80 通訊埠、135 通訊埠、443 通訊埠等。
  4. 目標主機所使用的作業系統,如 Windows 7、Windows 10、Linux 2.6.18、Android 4.1.2 等。
  5. 目標主機上所執行的服務以及版本,如 Apache httpd 2.2.14、OpenSSH 5.3p1 等。

(本文書摘內容出自《不會 C 也是資安高手 — 用 Python 和駭客大戰三百回合》,由 深智數位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題;首圖來源:。)

你可能有興趣


科技報橘 LinkedIn 上線!

最新科技產業動態、技術新突破、專業職能技巧提升 ....... 鎖定 TO  LinkedIn 專業品牌,提升職能與產業 Know-how,躋身產業菁英之列 https://www.linkedin.com/showcase/techorange

點關鍵字看更多相關文章: