troushoo

暗号化された SMB のパケットを復号

暗号化された 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
  1. 2021/08/07(土) 23:04:52|
  2. Wireshark
  3. | トラックバック:0
  4. | コメント:0
<<Windows から強制再起動 | ホーム | SockPerf を使ってネットワークのレイテンシーを測定>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://troushoo.blog.fc2.com/tb.php/488-3b021f27
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (114)
ネットワーク (54)
Wireshark (48)
AD (36)
Linux (45)
WinDbg (46)
SOS・Psscor2/Psscor4 (25)
Visual Studio (56)
Tips (32)
コンテナ (4)
Azure (17)
.NET (24)
Python (9)
Java (5)
SQL (6)
事例 (1)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する