Wiresharkを使ったFTPパスワードの漏洩確認について

セキュリティ

 もうFTP使っている人は少ないと思いますので、以前から実験したかったwiresharkを使ったパスワードの漏洩チェックについて記載したいと思います。
 悪用は絶対にしないでください。

● 環境

  クライアント
    Windows11Home(IP 192.168.19.1)
     ブラウザ edge を使用
   Wireshark 起動
  サーバ
    VMware 上の ubuntu 24.04LTS(IP 192.168.19.129)
    Webサーバ、FTPサーバが起動

● wiresharkによるhtml取得

 wiresharkの動作を確認する為に、クライアントとサーバの間で送受信されているhtml情報を取得してみます。  

  ①ubuntu上のapacheに次のhtmlを公開する

hello.html
<html><body><h2>hello</h2></body></html>

  ②wiresharkを起動し、VMnet8の監視を始める

   ※今回使用するVMネットワークのIPアドレスが、192.168.19.* であることから、このIPが割り当てられているVMnet8を選択しました。

  ③wiresharkのフィルタリング指定を行い、不要な情報を遮断する

表示フィルタ ip.addr==192.168.19.129
# 背景が緑色になればフィルタが機能している状態です

  ④windowsのブラウザから「192.168.19.129/hello.html」を呼び出す

wireshark上には、ネットワーク上のトラフィックが表示されますので、
   (クライアント)192.168.19.1 が(サーバ)192.168.19.129 上にある hello.html を取得した事
   サーバに送信したリクエスト情報
   サーバから帰ってきたレスポンス情報
が表示されているのがわかります。
 http通信はすべての通信内容が筒抜けですので、ローカル環境のみで使用すべきです。
 最近はhtppsではないHPはほとんど見かけませんね。

● ftpによる接続情報の取得

 ffftpを使用してサーバに接続するとどのように表示されるのか確認します。
 フィルタを外した状態でffftpを使ってubuntuのftpサーバに接続します。

  ユーザ名とパスワードが平文で表示されていることがわかります。
  パスワードだけではなく、送受信したファイル名や内容も平文で確認できるので、サーバのパスワードや設定が書かれた設定ファイルを送受信するだけで、ネット上にパスワードが漏洩していることがわかります。
  外部に接続するプロトコルは暗号化する必要がありますね。

  適当なユーザ名とパスワードを指定した様子は次の通りでした。
   user testuser
   pass 2468abcd    

  ログインが失敗したというエラーも帰ってきているのが確認できます。

● sftpを使った接続情報の表示

  sftpを使って暗号通信を行った様子をキャプチャしたところ次のようになりました。

 PASSとかUSERなどというキーワードすら出てこないので、どこをマスキングしたらいいのかわからないレベルです。
 SHA256を使った暗号化を行っているというところまではわかったのですが、あとはわかりません。
 これならパスワードやUSER名が漏洩する危険性は低いと感じました。
 ただ、接続先のIPアドレスは暗号化されていませんので、どこに接続しているのかは通信傍受で解析することができるということです。

● 最後に

  平文でデータを送受信していいのはローカル回線か、スタンドアロン回線位だと感じました。(規模によってはローカルでも暗号化した方がいいですね)
  外部回線にパスワードを平文で送るのは危険です。パブリック回線を使用する際には必ず暗号化通信を使用するようにしましょう。