サービスがその代わりに起動された場合、管理者パスワードを見つけることができる方法があります。
Windowsサービスを開始するアカウントのパスワードは、パスに沿って暗号化された形式でレジストリ(LSA Secrets)に保存されます。
HKEY_LOCAL_MACHINE /セキュリティ/ポリシー/秘密
LSAシークレットからパスワードを抽出する方法はいくつかあります。
- レジストリパスを一時パスにコピーし、暗号化されたパスワードを復号化する
- シャドウコピーを使用する
- 特別なユーティリティを使用してlsass.exeプロセスを操作します
SQL Serverサービスが実行されているアカウントからパスワードを取得してみましょう。
あります:
Windows Server 2012 R2のドメインコントローラー
SQL Server Express 2012
SQL Serverをインストールするときに、サービスを開始するために、既存のドメインアカウントを具体的に指定します(パスワードは14文字未満です)。
パスワードを抽出するには、gsecdumpユーティリティを使用します。
PowerShellを管理者として実行し、コマンドgsecdump-v2b5.exe -lを実行します
結果:
この種類の攻撃から保護するために、Windows Server 2008 R2では、管理されたサービスアカウントメカニズムが導入されました。
管理されたサービスアカウントは、他の管理者への管理の委任を含む、メンバーサービス名の自動パスワード管理と簡易管理を提供する管理ドメインアカウントです。
管理されたサービスアカウントの利点:
- 自動パスワード変更。 デフォルトのパスワード変更は、30日ごとに1回です。
- パスワードは複雑です。 240文字の複雑な自動生成パスワードがランダムな順序で使用されます(前半は英語のアルファベットの文字、後半は数字およびその他の文字です)
- 冗長な権利の欠如
- 複数のサーバーで1つのMSAを使用する機能(gMSA)。 NLBサービスで使用する場合など、すべてのサービスインスタンスが同じサブジェクトを使用する必要がある場合
- SPN管理
名前変更時にSPNの名前を自動的に変更する
-サーバーアカウント
-サーバーアカウントのdnshostnameプロパティ
-サーバーアカウントの追加aldnshostnameプロパティの変更
-サーバーアカウントのadditionalsam¬accountnameプロパティの変更
MSAをサポートするサービスおよびサービス:
- IIS
- AD LDS
- SQL Server 2008 R2 SP1、2012
- MS Exchange 2010、2013
MSA要件:
- ドメインおよびフォレストレベル-Windows Server 2008 R2
- Windows Server 2008 R2、Windows 7(Professional、Enterprise、Ultimate)
- .Net Framework 3.5x
- PowerShell用のActive Directory管理モジュール
- インストール済みパッチ2494158
フォレストおよびドメインに2008 R2(MSA)および2012(gMSA)レベルがない場合、次のコマンドでフォレストレベルを上げる必要があります。
adprep / forestprep
コマンドを使用したドメインレベル:
管理されたサービスアカウントを作成して使用する各ドメインのadprep / domainprep 。
PowerShellでMSAを有効にする
1)コマンドレットを実行します: Import-Module ActiveDirectory
2)MSAアカウントを作成するには、コマンドレットを実行する必要があります。
New-ADServiceAccount serviceaccount –RestrictToSingleComputer
ここで、serviceaccountはMSAアカウントの名前です
RestrictToSingleComputer-このパラメーターは、MSAが1つのサーバーのみにバインドされることを意味します。
Active Directoryユーザーとコンピューターに移動して、MSAが作成されていることを確認できます(マネージドサービスアカウントセクションを表示するには、スナップインで[表示]-[高度な機能]を有効にする必要があります)。
3)MSAをサーバーにバインドするには、コマンドレットを実行する必要があります。
Add-ADComputerServiceAccount -Identity server -ServiceAccount serviceaccount
serverは、MSAに関連付けられるサーバーの名前です
serviceaccount-MSAアカウント名
操作が成功したことを確認するには、Active Directoryユーザーとコンピュータースナップインに移動し、サーバープロパティに移動してmsDS-HostServiceAccount属性を確認する必要があります。
4)管理されたサービスアカウントをローカルコンピューターにインストールする
コマンドレットを実行する必要があります。
Install-ADServiceAccount -Identity serviceaccount
ここで、serviceaccountはMSAアカウントの名前です
5)MSAのテスト(Windows 8.1、Windows PowerShell 4.0、Windows Server 2012 R2)
コマンドレットを実行する必要があります。
Test-ADServiceAccount serviceaccount
ここで、serviceaccountはMSAアカウントの名前です
TrueまたはFalseを返します
6)MSAに代わって開始するようにWindowsサービスを設定し、サービスを再起動します。
MSA名の最後に$記号を含めるようにしてください。
パスワードフィールドは空白にしておく必要があります。
gsecdumpユーティリティを使用して、サービスアカウントのパスワードを確認します
Windows Server 2012では、グループ管理サービスアカウントが導入されました。
管理アカウントを1つのサーバーではなく、複数のサーバーにバインドできます。
これは、たとえば、ネットワーク負荷分散サービスで使用するために必要になる場合があります。
要件:
- スキーマレベル-Windows Server 2012
- Microsoftキー配布サービスを実行しているWindows Server 2012(R2)ドメインコントローラー
- Windows Server 2012、2012 R2、8、8.1
- PowerShell用のActive Directory管理モジュール
PowerShellでgMSAを有効にする
1)Microsoftキー配布サービスがオンになっていることを確認します
「キー配布サービスは共有シークレットを使用してアカウントキーを作成します。 これらのキーは定期的に変更されます。 グループ管理されたサービスアカウントの他の属性に加えて、Windows Server 2012ドメインコントローラーは、キー配布サービスによって提供されるキーのパスワードを計算します。 Windows Server 2012ドメインコントローラーに接続することにより、Windows Server 2012およびWindows 8ホストは現在および以前のパスワードを取得できます。
2)ルートキーを作成する
コマンドレットは、ルートキーの作成を担当します。
Add-KdsRootKey
新しいルートキーを作成するには、コマンドレットを実行する必要があります。
Add-KdsRootKey –EffectiveImmediately
この場合、キーは複製されるまで10時間で利用可能になります。
コマンドレットを実行できます:
Add-KdsRootKey –EffectiveTime((get-date).addhours(-10))
この場合、キーはすぐに利用可能になります(仕事の10時間)
3)gMSAを作成する
コマンドレットを実行します。
New-ADServiceAccount serviceaccount -DNSHostName test.test.com –PrincipalsAllowedToRetrieveManagedPassword $ test
ここで、serviceaccountはgMSAアカウントの名前です
test.test.com-ルートキーが作成されたサーバーの名前
$ test-KDSに情報を問い合わせることができるサーバーの名前
Active Directoryユーザーとコンピューターに移動し、gMSAが作成されていることを確認できます(マネージドサービスアカウントセクションを表示するには、スナップインで[表示]-[高度な機能]を有効にする必要があります)。
4)管理されたサービスアカウントをローカルコンピューターにインストールする
コマンドレットを実行する必要があります。
Install-ADServiceAccount -Identity serviceaccount
ここで、serviceaccountはgMSAアカウントの名前です
5)MSAのテスト(Windows 8.1、Windows PowerShell 4.0、Windows Server 2012 R2)
コマンドレットを実行する必要があります。
Test-ADServiceAccount serviceaccount
ここで、serviceaccountはMSAアカウントの名前です
TrueまたはFalseを返します
6)gMSAに代わって実行するようにWindowsサービスを設定し、サービスを再起動します。
gMSA名の最後に$記号を含めるようにしてください。
パスワードフィールドは空白にしておく必要があります。
gsecdumpユーティリティを使用して、サービスアカウントのパスワードを確認します
Uninstall-ADServiceAccountコマンドレットを使用して、MSA / gMSAを削除できます。
Set-ADServiceAccountコマンドレットを使用して、MSA / gMSAパラメーターを設定できます
パスワード変更期間の設定:
Set-ADServiceAccount serviceaccount -ManagedPasswordIntervalInDays 60
ここで、serviceaccountはgMSAアカウントの名前です
60-パスワードが変更されるまでの期間
MSAを使用するためのKerberos暗号化アルゴリズムの定義
オプション:RC4、AES128、AES256
Set-ADServiceAccount serviceaccount -KerberosEncryptionType RC4、AES128、AES256
SPNの割り当て
Set-ADServiceAccount serviceaccount -ServicePrincipalNames @ {Add = "add SPN"}
サービスのNetBIOS名の設定(SAMAccountName)
指定されていない場合、識別子Nameが使用されます。
設定されている場合、ADの表示名はNameから、ログインの識別子はSAMAccountNameから
Set-ADServiceAccount serviceaccount –SamAccountNameテスト
MSAは、セキュリティを向上させるもう1つの方法です。