web-dev-qa-db-ja.com

Windowsでのパスワードクラッキングから保護する

Windowsのメモリからプレーンテキストでパスワードを取得するためのツールが存在することを知っています(メモリを読み取り、LSASSプロセスからパスワードを復号化します)。

この動作はWindows Server 2019にも存在しますか?

ローカル管理者ユーザーがMimikatzなどのこのツールのいくつかを使用してWindowsマシンからパスワードを取得するのを回避する方法はありますか?

ありがとう。

4
Roger

KerberosチケットまたはNTLMハッシュを盗むため、これを回避する必要はありません。ユーザーはローカル管理者である必要があり、アプリケーションも管理者として実行する必要があることに注意してください。

Mimikatzからの注を参照してください。

管理者としてMimikatzを実行:管理者アカウントを使用している場合でも、Mimikatzを完全に機能させるには「管理者として実行」する必要があります。

そのため、セキュリティの 10不変の法則 に該当します。 bold;の1つを参照してください。

法律#1:悪者があなたに自分のプログラムをあなたのコンピュータで実行するように説得できる場合、それはあなただけではありませんもうコンピュータ。

法則2:悪意のあるユーザーがコンピュータのオペレーティングシステムを変更できる場合、それはもはやコンピュータではありません。

法則3:悪意のあるユーザーがコンピュータに物理的に無制限にアクセスできる場合、それはもはやコンピュータではありません。

法律#4:悪意のあるユーザーがWebサイトでアクティブコンテンツを実行することを許可すると、それはもはやWebサイトではなくなります。

法律#5:弱いパスワードは強力なセキュリティに勝る。

法律#6:コンピュータは、管理者が信頼できるほど安全です

法律#7:暗号化されたデータは、その復号化キーと同じくらい安全です。

法則#8:古いマルウェア対策スキャナーは、スキャナーをまったく使用しないよりもわずかに優れています。

法律#9:絶対的な匿名性は、オンラインでもオフラインでも実際には達成できません。

法律#10:テクノロジーは万能薬ではありません。

不変の10のセキュリティ法則に該当する場合、管理者はコンピューターで何でもでき、キーロガーをインストールすることさえできるため、マイクロソフトはそれを修正することは決してありません。それは重要です。

したがって、最初は制限付きグループGPO=を使用して、ローカル管理者グループに自分自身を追加できないようにすることをお勧めします。

次に、HDD以外のすべての起動デバイスを削除して、フラッシュデバイスで起動できるユーザーを保護し、ローカルの管理者アカウントのパスワードをワイプできるユーザーを防止します。

3番目に、強力なパスワードでBIOSを保護します。

最後に、ハードディスクの暗号化方法を使用して、誰かがマシンからハードディスクを取り外した場合に、コールドブートによる不正な変更を防止します。

他にもいくつかのヒントがありますが、企業のワークスペースを確保したい場合は強力なセキュリティのモデルに準拠し、悪意のある人物を見つけたい場合はアカウント監査を有効にする必要があります。

5
yagmoth555

デフォルトの設定では、LSAメモリからクリアテキストのWDigest資格情報をダンプすることはできませんが、ローカル管理者権限を持っているため、これらの新しいセキュリティ機能はすべて無効にできます 、マイクロソフトは下位互換性を維持することを好むので。したがって、いくつかのレジストリキーを追加すると、変更後に入力したすべてのパスワードに対して、Mimikatz(Windows 10の場合はKiwi)が再び機能し始めます。

  • クリアテキストでのWDigest資格情報の保存を停止するWindows 8.1のセキュリティ機能が追加され、以前のWindowsバージョン KB2871997 にバックポートされ、Windows 7以降のすべてのバージョンが修正されました。この機能が有効になると、Mimikatzは表示を開始します(null)はパスワードですが、次のようにして無効にすることができます。

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest]
    "UseLogonCredential"=dword:00000001
    
  • Windows 10では、Windows Defender Credential Guardがパスワードを保護しています。上記のようにセキュリティ機能を無効にすると、パスワードは表示されますが、クリアテキストではありません。

    Kiwi, Windows Defender Credential Guard enabled

    ただし、Windows Defender Credential Guardは、グループポリシーを使用して 無効 にすることができます。このポリシーは2つのレジストリキーを効果的に追加するだけなので、通常は簡単に無効にすることができます。コマンドプロンプトから。

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard]
    "EnableVirtualizationBasedSecurity"=dword:00000000
    
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA]
    "LsaCfgFlags"=dword:00000000
    

    ユーザーがもう一度パスワードを使用すると、クリアテキストで表示されます。

    Kiwi, Windows Defender Credential Guard disabled

これはドメイン管理者の資格情報を盗むために簡単に使用できるため、ユーザーはワークステーションのローカル管理者権限を持たないでください。ローカル管理には、ドメイン管理者権限のない別のアカウントを使用する必要があります。

4
Esa Jokinen

実際にかなりうまくいく解決策を提案したいと思います。他の答えは完全に保護することは不可能であることを示唆していますが、攻撃者がmostをあきらめて、より簡単なターゲットに移動することを十分に困難にすることができます。

まず、Credential Guardを有効にします。これにより、シークレットがLSAから移動し、攻撃者がプロセスメモリからパスワードを読み取ることができなくなります。

次に、LSA保護プロセスモードを有効にします(RunAsPPL = 1)。これにより、攻撃者がLSAにコードを挿入したり、メモリを読み取ったりすることを防ぎます。

3番目に、HVCIを有効にして、攻撃者がカーネル内から上記の保護を無効にできないようにします。

4つ目は、これをUEFIですべてロックすることです。攻撃者がレジストリキーを使用してdoesをねじ込んでも、UEFIブート設定によって構成がロックされるため、無効にするのは非常に困難です。

2
Steve