iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
佛心分享-IT 人自學之術

從零開始的 Linux 世界系列 第 7

【Day.7】滲透測試的第一步:GnuPG 加密文件(下)

  • 分享至 

  • xImage
  •  

知道 GPG 的運作原理之後我們要來實作 Windows 與 Kali Linux 之間的加密文件互傳囉!

今天要做的三件事情,內容比較多,大家請慢用:

  1. 安裝並啟動 OpenSSH
  2. 調整防火牆讓 Kali 能連 Windows
  3. 用 GPG 測試加密檔案的互傳

在開始今天的實作之前,首先你要有 OpenSSH 這個工具,以及基本的網路七層架構 OSI 的知識,如果覺得太硬了可以先去彌補一下這些基礎知識,我覺得 iThome 這篇文章很有幫助,或是用 ChatGPT 詢問一下。

✒️ 在你的 Windows 安裝 OpenSSH

安裝之前你可以先用系統管理員身分執行「Powershell」,輸入

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

看看你的電腦裡面有沒有出現 OpenSSH.Client & OpenSSH.Server,然後看一下 State 是出現 Installed 還是 NotPresent,如果是 NotPresent 那就要安裝囉!

https://ithelp.ithome.com.tw/upload/images/20250921/20176048gonDLZ83N0.png


【Windows】GUI 安裝方式

  1. 按下鍵盤 win + i 打開「設定」
  2. 選擇「系統」
  3. 拉到最下面找「選用功能」
  4. 點擊「檢視功能」
  5. 在上方搜尋列輸入 OpenSSH 找到「OpenSSH 伺服器」
  6. 安裝

https://ithelp.ithome.com.tw/upload/images/20250921/20176048lrjNm48U15.png


【Windows】CLI 安裝方式

  1. 用系統管理員身分執行「Powershell」
  2. 輸入指令
# 以 Powershell 高階指令安裝
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# 以底層系統工具安裝
DISM /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0 

# 擇一,結果是一樣的,都是安裝 OpenSSH.Server
  1. 等它安裝好之後輸入
# 啟用 OpenSSH.Server
Start-Service sshd

# 下次開機的時候自動把 SSH port 22 打開
Set-Service -Name sshd -StartupType 'Automatic'

Kali Linux 不用安裝!它原本就預設有 OpenSSH 的功能了,而且等一下傳送 GPG 加密文件的時候用到的 scp 也有,這就是為什麼我說 Kali 很方便了哈哈哈!

🍀 開啟你的 Windows SSH 防火牆

不開的話 Kali Linux 進不去 Windows,你可以嘗試在 Kali Linux 下指令

ssh <your_username>@<your_windows_IPv4>
# 舉例:ssh GF66@172.31.176.1

你會發現 Kali Linux 直接卡住,那是因為你的 Windows port 22 被防火牆擋住了!檢查看看是不是真的被防火牆擋住了,一樣用系統管理員身分執行「Powershell」然後輸入

Get-NetFirewallRule -DisplayName "*OpenSSH*"

https://ithelp.ithome.com.tw/upload/images/20250921/2017604886N7Rvq6wk.png

很明顯的我們 Profile 被設定成 Private 這會導致 WSL 的虛擬網卡 (vEthernet) 被擋下來。因為 Windows 開啟 OpenSSH Server 之後,系統會自動新增一條防火牆規則。

所以我們要在 Windows 新增一條防火牆規則,在「Powershell」下指令

New-NetFirewallRule -Name "OpenSSH-Server-WSL" `
  -DisplayName "OpenSSH Server for WSL" `
  -Enabled True -Direction Inbound -Protocol TCP `
  -Action Allow -LocalPort 22 -Profile Any

然後你可以再嘗試看看從 Kali Linux 進入 Windows

ssh <your_username>@<your_windows_IPv4>
# 舉例:ssh GF66@172.31.176.1

https://ithelp.ithome.com.tw/upload/images/20250921/20176048zuDEaIThmz.png

它會問你:「我不確定這台主機是不是你說的那一台,是否要信任?」,當然是直接選 yes 囉!自己的電腦怎麼可能不信任對吧?接著輸入你的 Windows 密碼

https://ithelp.ithome.com.tw/upload/images/20250921/201760480NiKcCkwfM.png

噠啷!你從 Kali Linux 成功進入 Windows 介面囉!

現在我們已經可以從 Windows 進入 Kali Linux,也可以反向從 Kali Linux 進入 Windows,也就是說兩邊已經互通了。如果你想要確定是不是兩邊互通,那就從 Windows 用 SSH 進入 Kali Linux 試試看!

https://ithelp.ithome.com.tw/upload/images/20250921/20176048KVEcAxnuAo.png

接著,我們就要來互傳檔案試試看!

⚙️ 傳送加密文件給 Kali Linux

還記得昨天說過 GPG 的運作原理嗎?我們要先把 Kali Linux 產生的公鑰傳給 Windows,這樣 Windows 才可以用公鑰加密文件回傳給 Kali Linux,最後 Kali Linux 用自己的私鑰打開這份加密文件。

(不要跟我說你忘記公私鑰了哦!真的不見了那也只好再重新產生一次了,回去看昨天的文章吧!)

所以把公鑰給 Windows 的指令為

scp public <your_username>@<your_windows_IPv4>:/C:/Users/<your_username>/Desktop
# 舉例: scp public GF66@172.31.176.1:/C:/Users/GF66/Desktop

這時候你的 Windows 桌面會出現一個這樣的檔案,這就是你的 Kali Linux 公鑰

https://ithelp.ithome.com.tw/upload/images/20250921/20176048lxt4psRDFM.png

這時候用「Kleopatra」把公鑰匯入,它是我們在安裝 Gpg4Win 的時候附加的 GUI 套件

  1. 打開「Kleopatra」
  2. 點擊上方「匯入」
  3. 右下角選擇「所有檔案」
  4. 開啟「public」

https://ithelp.ithome.com.tw/upload/images/20250921/20176048bu3c7NYZul.png

這樣你就成功匯入 Kali Linux 的公鑰了!接著隨便寫個什麼檔案再用「Kleopatra」加密

  1. 在桌面建立「test.txt」
  2. 寫下你想說的話
  3. 點擊「Kleopatra」上方「簽署/加密」
  4. 在 Encrypt for others 加入你的 Kali Linux 公鑰

https://ithelp.ithome.com.tw/upload/images/20250921/201760484Sx6ccwV3s.png

  1. 點擊「簽署/加密」
  2. 打開 Windows cmd 輸入指令
scp <file> <your_username>@<your_Linux_IPv4>:/home/<Linux_username>/Desktop
# 舉例:scp test.txt.gpg raychao@172.31.191.74:/home/raychao/Desktop
  1. 在 Kali Linux ls 看一下,檢查檔案正確被傳送過來了
  2. 輸入指令
gpg -d <file>
# 舉例:gpg -d test.txt.gpg

然後你就會看到

https://ithelp.ithome.com.tw/upload/images/20250921/20176048VD8357kivU.png

噠啷!你成功把加密文件傳送給 Kali Linux 而且還解密出來了呢!

至於下方為什麼會出現 Can't check signature: No public key 是因為你還沒有把 Windows 的公鑰傳給 Kali Linux。但你其實可以忽略這個錯誤,因為「解密」已經成功了,內容你也看得到了。只是少了「檔案真的是 Windows 那邊簽署的」這個保證而已。

❓ 傳送加密文件給 Windows

這邊應該不用我說明了,大家應該都了解它的邏輯和運作方式,這邊提供流程給大家參考,就讓大家自己練習看看囉!而且拿到 Windows 公鑰之後也不會再出現 Can't check signature: No public key 的 Error 了!

  1. 把 Windows 的公鑰 scp 給 Kali Linux
  2. 在 Kali Linux nano 個文件
  3. gpg -ear <userId> 把文件加密
  4. 把加密文件 scp 給 Windows
  5. 用私鑰把文件解開

如果你成功在 Windows 看到文件了,恭喜你!已經學會怎麼互通 Kali Linux 和 Windows,而且是秘密通訊哦!

📄 參考資料

ㄙ ㄩˊ 的鐵人賽文章
Microsoft OpenSSH 安裝說明
Microsoft SSH 連線說明
黑暗執行緒
鳥哥的 Linux 私房菜:網路設定

推薦先玩玩 SCP,因為成功傳一次檔案,會大大提升信心!


上一篇
【Day.6】滲透測試的第一步:GnuPG 加密文件(上)
系列文
從零開始的 Linux 世界7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言