暗号化された SMB のパケットを復号する方法を紹介します。
環境本手順は Linux Kernel のバージョン 5.4 以降で使用できます。Ubuntu 20.04 で試しています。
手順まず、Windows で暗号化を有効にした共有フォルダーを作成します。
1. サーバーマネージャーを起動し「ファイル サービスと記憶域サービス」→「共有」で「ファイル共有を作成するには、新しい共有ウィザードを実行してください。」をクリックします。

2.「プロファイルの選択」で「SMB 共有 - 簡易」を選択しました。

3.「共有の場所」では「ボリュームで選択」で「C:」を選択しました。

4.「共有名」に任意の名前を入力します。

5.「データ アクセスの暗号化」にチェックを入れ、暗号化を有効にします。

6.「アクセス許可」を環境に合わせ修正します。

7.「作成」をクリックし、共有フォルダーを作成します。

8.「閉じる」をクリックします。

次に、Linux から暗号化が有効化された共有フォルダーにアクセスします。
1. cifs-utils をインストールします。
sudo apt-get install cifs-utils |

2. 共有フォルダーをマウントします。
sudo mount –t cifs –o vers=3.0,username=<ユーザー名>,password=<パスワード> //<サーバー名>/<共有フォルダー名> /mnt/share |

3. パケットキャプチャーを実施します。
sudo tcpdump –w capture.pcap |

4. 他のターミナルで共有フォルダーにファイルを作成してみます。
sudo su cat << EOF > /mnt/share/test.txt This is a test. EOF |

5. パケットキャプチャーを実施しているターミナルで Ctrl + C を入力し、作成された capture.pcap を Wireshark で開いてみます。

「Encrypted SMB3」と表示され暗号化されていることがわかります。

6. 再度パケットキャプチャーを開始します。
sudo tcpdump –w capture2.pcap |

7. 復号に使用する鍵を表示させます。
sudo smbinfo keys <ファイルへのパス> |

8. 上記 4 で作成したファイルを表示させてみます。
sudo cat /mnt/share/test.txt |

9. パケットキャプチャーを実施しているターミナルで Ctrl + C を入力し、作成された capture2.pcap を Wireshark で開きます。

10.「編集」→「設定」をクリックします。

11.「Protocols」→「SMB2」を選択し「編集」をクリックします。

12.「+」をクリックし、値を入力し、「OK」を押します。
Session ID | 上記 7 の出力の Session Id |
Session Key | 上記 7 の出力の Session Key |
Server-to-Client | 上記 7 の出力の Server Encryption Key |
Client-to-Server | 上記 7 の出力の Server Decryption Key |

13. パケットを確認すると「Decrypted SMB3」と表示されており、復号されていることがわかります。
「Decrypted SMB3」のタブを見ると、test.txt の中身も確認できました。

情報元Wireshark Decryption
- 2021/08/07(土) 23:04:52|
- Wireshark
-
| トラックバック:0
-
| コメント:0