如何成為駭客 – 基礎學習篇 (How to become a hacker: Basic)

by iok
發佈日期: 更新日期: 33.4k 人次瀏覽
如何成為駭客 - 基礎學習篇 (How to become a hacker: Basic)

你覺得當駭客很酷,也想入門嗎?你努力半天,仍搞不清楚當一個駭客要學什麼,導致資安功力仍不見增長嗎?閱讀市面上的資安入門書籍,但還是有見樹不見林的感覺嗎?

您好,我是Iok。從事資安工作多年,有多次指導新人的經驗,常發覺新人因基礎不扎實,而導致工作進度緩慢或努力方向錯誤。

而其中的問題所在,是新人根本不知道做這行之前,需要什麼樣的基礎學科知識,但資安領域,其實是可以歸納入門必修與選修學科知識。

接下來,本篇文章會完整介紹資安必選修學科知識。希望能成為資安知識地圖,讓大家一步步按圖索驥。

除此之外,我還會無私地跟你分享,我以前學習這些學科的補充書籍與網路教材。

學習好似蓋一棟摩天大樓,需要多日打樁,建立良好地基。看似枯燥無聊的基礎知識,卻是邁向駭客之路不可或缺的墊腳石。

因此,雖然當駭客無法速成。這篇文章希望能幫助想進入資安領域的新手,透過必選修知識地圖,能減少走彎路的時間。

若你有心要成為駭客,就請看到文章最後吧。

Linux

Linux 自 1991 年 Linux 之父 Linus Torvalds 開發至今,已成為世界上最受歡迎的開源伺服器作業系統。網際網路上有許多服務由 Linux 提供。

而 Offensive Security 公司維護的 Kali Linux,是最受駭客歡迎的 Linux 版本。

了解 Linux 的基礎,如 Command Line 指令、帳號使用者群組、檔案權限控管機制等。雖然多數Linux 版本預設提供圖形介面,但是幾乎所有的工作都能以命令列指令執行。

而 Offensive Security 公司提供的滲透測試教育訓練課程 PEN-200 ,亦有專章講解命令列。

進階部分,可再學習 Linux 伺服器程式安裝。例如網頁、DNS 、資料庫、主機防火牆 (iptables) 等。

Python

Python 是一種程式語言。近幾年由於機器學習與人工智慧熱潮興起,Python 程式語言搖身一變成為時下最流行的程式語言。 有許多駭客很喜歡使用 Python。

Python 也是一種 Scripting Language,不需要編譯後再執行。結構化的程式語法,執行即所得,非常適合初學者。

「Batteries included」的哲學,預設安裝就有許多方便程式模組套件,不需額外安裝下載。

若無內建,在 PyPI 網站上,也可搜尋到非官方開發者釋出的套件。這些模組可視為是程式的延伸外掛,擴充 Python 原本沒有的功能。

許多 Github 上 發佈的弱點攻擊程式 (exploit),也大都使用 Python 撰寫。由此可知,Python 十分受到駭客歡迎,適合投資時間學習。

C 語言

1972 年,貝爾實驗室 Ken Thompson 與 Dennis Ritchie 研究員為移植 Unix 作業系統到 PDP-11 主機,發明了 C 語言。

C 語言特色具有靈活、結構化、可移植性高。其編譯器常見於各大作業系統平台,如 GCC、Vistual Studio。編譯後的程式效能好。

C 語言也廣泛使用於軟體開發的領域中。大至超級電腦,小至洗衣機的微電腦,都能看到 C 語言程式的蹤跡。

而 Linux 作業系統核心(kernel) 使用 C 和組合語言撰寫。美國麻省理工學院 (MIT) 的作業系統課程(Operating System Engineering) 教學用作業系統 (xv6) 亦是使用 C 與組合語言撰寫。

而微軟 Windows NT 作業系統原始碼,亦大多由 C 與 C++ 語言撰寫 [來源]。

由此可知,要深入了解作業系統核心,熟悉 C 語言是必備條件。

TCP/IP 網路通訊協定

如何成為駭客 基礎學習篇 TCP/IP

網路是一群互連的電腦,網路通訊協定是這些電腦相互溝通的語言和方式,而最普遍使用的網路通訊協定即是 TCP/IP。

TCP/IP 跟人體構造一樣,你每天使用,但你不一定明白箇中原理。IP 就好似電腦的門牌地址。而 IP 通訊協定是以封包為基礎的電腦間定址方法。

TCP 是具備容錯機制的傳輸協定,常用於可靠連線傳輸。TCP/IP 則是所有依靠在TCP與IP 上通訊協定的泛稱。如 HTTP、FTP、SMTP 等應用程式通訊協定,也是其中的一部分。你熟悉的網路服務,也都是運行在TCP/IP 通訊協定之上。

由此可知,要當一個駭客,深入了解TCP/IP 可以更明白電腦通訊方式與原理,並有助於找到協定中的弱點與問題。

關聯式資料庫

網站服務普遍儲存資料在關聯式資料庫。關聯式資料庫主要利用 SQL 語法進行資料的新增、修改、刪除與查詢。

而最容易切入的低成本方式,即在電腦安裝 MySQL(開源版稱 MariaDB)或 PostgreSQL 關聯式資料庫管理軟體,練習 SQL 語法。

比方說,建立資料庫、刪除資料庫、建立資料表、刪除資料表、新增並定義資料表欄位名稱與屬性、新增、修改、刪除與查詢資料,或是進階的 Having、Group by、Join 等 SQL 語法。

由於 SQL Injection 是網站服務常見的弱點。學習 SQL 語法,有助於了解網頁程式與資料庫之間互動,未來若有機會碰到 SQL Injection 弱點時,也較易上手攻擊或防禦。

OWASP Top 10

OWASP Top 10 是最具權威的網頁攻擊弱點列表前十名。每隔幾年 OWASP 協會會公告年度網頁弱點排名,目前最新排名是 2021發布的 。

弱點排名清單代表多數網站的共通弱點。熟悉這些弱點的攻防手法可更了解如何攻擊或防禦網站,對於未來不管是擔任攻擊方(紅軍)、防守方(藍軍)的相關工作,都有幫助。

駭客工具 (Hacktools)

所謂「割菜還需鐮刀,剪髮還需剃刀」,想進一步探索TCP/IP 通訊協定、網站或應用程式弱點,必須知道駭客常用的工具。

比方說,NMAP 用於通訊埠掃描。Metasploit Framework 整合最全面的弱點 Exploit 與滲透測試工具。Burp Suite 與 Fiddler 可監聽 Web 的流量,對網站進行中間人攻擊,方便地攔截並修改網站請求訊息。

proxychains 是應用程式強制代理伺服器設定工具,針對沒有支援 Proxy 設定的應用軟體,進行強制代理。

Kali Linux 已將本節提到的工具,整合到一張 Live CD ,開機就能啟用,可省下不少安裝與設定環境的麻煩,直接上手測試。

請留意,操作上述提到的駭客工具,請用於合法測試環境,用於非法測試或入侵,會招致刑責。

同場加映:quark-engine

知名的 Android 惡意程式評分系統 quark-engine ,就是標準的駭客思維。quark-engine 是一個開源專案 (Open Source) ,專案開發者來自台灣,設計原理是參考台灣的刑事訴訟法-第四章的犯罪行為階段論,來解析 Android APK 程式中潛藏的惡意行為。

quark-engine 專案曾發表在 Black Hat Asia、Hack in the Box 資安研討會,並已成功整合至 Jadx、APKLab 等其他 Android 惡意程式分析工具中。

若讀者對 quark-engine 的開發過程有興趣,可參閱其中一位專案核心開發者 JunWei Sung的部落格文章 – Quark-Engine: Three years later。

恭喜你已經讀到最後,如果對這一系列文章有興趣,也歡迎你閱讀我另一篇文章「如何成為駭客 (資安研討會、社群與網路資源篇)

相關文章

2 comments

Albert 2021 年 2 月 1 日 - 21:13

您好,我對資安有興趣也對逆向工程也感興趣
但因為是新手,想請問有沒有推薦的書籍可以讓我初學者了解??
不管是逆性工程的書或x86語言的書

謝謝

Reply
Iok-Jin Sih 2021 年 2 月 7 日 - 08:42

Albert 您好,關於逆向工程的書籍,請參考我另外一篇文章 如何成為駭客 – 逆向工程 (Reverse Engineering) 篇

Reply

留言