TCP ポート 445 が Windows Server でリッスンしている場合、SMB 共有にアクセスできない

適用対象: Windows Server 2016 StandardWindows Server 2008 Datacenter without Hyper-VWindows Server 2008 Enterprise

現象


ターゲットの Windows サーバーで共有リソースが有効になっている場合でも、サーバー メッセージ ブロック (SMB) 共有リソースにアクセスできません。 netstat コマンドを実行してネットワーク接続を表示すると、TCP ポート 445 がリッスンしていることが結果に表示されます。 ただし、ネットワーク トレースは、TCP ポート 445 での通信が次のように失敗していることを示しています。

Source 宛先 プロトコル 説明
クライアント サーバー TCP TCP:Flags=......S.、SrcPort=62535、DstPort=Microsoft-DS(445)、PayloadLen=0、Seq=4085616235, Ack=0、Win=8192 ( ネゴシエートスケール係数 0x8 ) = 8192
クライアント サーバー TCP TCP:[SynReTransmit #600]Flags=......S.、SrcPort=62535、DstPort=Microsoft-DS(445)、PayloadLen=0、Seq=4085616235、Ack=0、Win=8192 ( ネゴシエートスケール係数 0x8 ) = 8192
クライアント サーバー TCP TCP:[SynReTransmit #600]Flags=......S.、SrcPort=62535、DstPort=Microsoft-DS(445)、PayloadLen=0、Seq=4085616235、Ack=0、Win=8192 ( ネゴシエートスケール係数 0x8 ) = 8192


次のコマンドを使用して、フィルタリング プラットフォーム ポリシーの変更の監査イベントを有効にすると、ブロックを示すイベント (イベント ID 5152 など) が発生する場合があります。

auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable

イベント ID 5152 の例:

イベント ログ

イベント ソース

イベント ID

メッセージ テキスト

セキュリティ

Microsoft-Windows-Security-Auditing

5152

説明:
Windows フィルタリング プラットフォームによってパケットがブロックされました。

アプリケーション情報:
プロセス ID: 0
アプリケーション名: -
ネットワーク情報:
方向: 受信
送信元アドレス: 192.168.88.50
送信元ポート: 52017
宛先アドレス: 192.168.88.53
宛先ポート: 445
プロトコル: 6

フィルター情報:
フィルターの実行時 ID: 67017
レイヤー名: トランスポート
レイヤーの実行時 ID: 12

原因


この問題は、Wannacrypt と同じ SMBv1 脆弱性を利用する Adylkuzz マルウェアが、TCP ポート 445 を使用している SMB サーバーで着信トラフィックをブロックする NETBC という名前の IPSec ポリシーを追加するために発生します。 一部の Adylkuzz クリーンアップ ツールはマルウェアを削除できますが、IPSec ポリシーを削除できません。 詳細については、Win32/Adylkuzz.B を参照してください。

解決方法


この問題を解決するには、次の手順を実行します。

  1. オペレーティング システムに適したセキュリティ更新プログラム MS17-010 バージョンをインストールします。
  2. Win32/Adylkuzz.B の [What to do now] タブの手順に従います。
  3. Microsoft セキュリティ スキャナーを使用 してスキャンを実行します。
  4. 次のコマンドを使用して、IPSec ポリシーが TCP ポート 445 をブロックしているかどうかを確認します (例については、引用した結果を参照してください) 。

    netsh ipsec static show policy all

    ポリシー名: netbc
    説明: なし
    最終更新日時: 2017/05/24 4:33:45
    割り当て済み: はい
    マスター PFS: いいえ
    ポーリング間隔: 180 分

    netsh ipsec static show filterlist all level=verbose

    フィルターリスト名: ブロック
    説明: なし
    ストア: ローカル ストア <WIN>
    最終更新日時: 2017/05/24 4:32:18
    GUID: {ID}
    フィルターの数: 1
    フィルター
    ---------
    説明: 445
    ミラー: はい
    送信元 IP アドレス: <IP アドレス>
    送信元マスク: 0.0.0.0
    送信元 DNS 名: <IP アドレス>
    宛先 IP アドレス: <IP アドレス>
    宛先 DNS 名: <IP アドレス>
    プロトコル: TCP
    送信元ポート: ANY
    宛先ポート: 445

    注: 感染していないサーバーでコマンドを実行する場合、ポリシーはありません。

  5. IPSec ポリシーが存在する場合は、次のいずれかの方法を使用して削除します。
    • 次のコマンドを実行します。

      netsh ipsec static delete policy name=netbc

    • グループ ポリシー エディタ (GPEdit.msc):

      Local Group Policy Editor/Computer Configuration/Windows Settings/Security Settings/IPSec Security

詳細情報


2016 年 10 月以降、Microsoft は、サポートされているバージョンの Windows Server 更新プログラムに新しいサービス モデルを使用しています。 更新プログラムを配布するためのこの新しいサービス モデルにより、セキュリティと信頼性の問題に対処する方法が簡略化されます。 システムを常に最新の状態に保ち、システムが保護され、最新の修正プログラムが適用されるようにすることをお勧めします。

この脅威がある場合は、次のコマンドを実行します。

netsh ipsec static add policy name=netbc
netsh ipsec static add filterlist name=block
netsh ipsec static add filteraction name=block action=block
netsh ipsec static add filter filterlist=block any srcmask=32 srcport=0 dstaddr=me dstport=445 protocol=tcp description=445
netsh ipsec static add rule name=block policy=netbc filterlist=block filteraction=block
netsh ipsec static set policy name=netbc assign=y

また、次のコマンドを使用して接続を許可するファイアウォール ルールを追加することもできます。

netsh advfirewall firewall add rule name="Chrome" dir=in program="C:\Program Files (x86)\Google\Chrome\Application\chrome.txt" action=allow
netsh advfirewall firewall add rule name="Windriver" dir=in program="C:\Program Files (x86)\Hardware Driver Management\windriver.exe" action=allow