Windows Security Controls
Trickestを使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。 今すぐアクセスしてください:
AppLockerポリシー
アプリケーションホワイトリストは、システム上に存在し実行されることが許可されている承認されたソフトウェアアプリケーションまたは実行可能ファイルのリストです。目的は、特定のビジネスニーズに合致しない有害なマルウェアや非承認のソフトウェアから環境を保護することです。
AppLockerは、Microsoftのアプリケーションホワイトリストソリューションであり、システム管理者にユーザーが実行できるアプリケーションとファイルを制御する権限を与えます。実行可能ファイル、スクリプト、Windowsインストーラファイル、DLL、パッケージ化されたアプリ、パッケージ化されたアプリのインストーラに対して細かい制御を提供します。 組織がcmd.exeとPowerShell.exeをブロックし、特定のディレクトリへの書き込みアクセスを制限することは一般的ですが、これらはすべてバイパスできます。
チェック
ブラックリスト/ホワイトリストに登録されているファイル/拡張子をチェックします:
このレジストリパスには、AppLockerによって適用される構成とポリシーが含まれており、システムに強制されている現在のルールセットを確認する方法を提供しています:
HKLM\Software\Policies\Microsoft\Windows\SrpV2
バイパス
AppLockerポリシーをバイパスするための便利な書き込み可能フォルダ:AppLockerが
C:\Windows\System32
またはC:\Windows
内で何でも実行を許可している場合、バイパスするために使用できる書き込み可能フォルダがあります。
一般的に信頼される"LOLBAS's" バイナリはAppLockerをバイパスするのに役立つことがあります。
不適切に書かれた規則はバイパスされる可能性があります
たとえば、**
<FilePathCondition Path="%OSDRIVE%*\allowed*"/>
のような場合、allowed
**という名前のフォルダをどこにでも作成することができ、許可されます。組織はしばしば**
%System32%\WindowsPowerShell\v1.0\powershell.exe
実行可能ファイルをブロック**することに焦点を当てますが、他のPowerShell実行可能ファイルの場所、たとえば%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
やPowerShell_ISE.exe
などを忘れがちです。DLLの強制は非常にまれに有効になっています。システムにかかる追加負荷と、何も壊れないことを確認するために必要なテストの量が理由です。そのため、DLLをバックドアとして使用するとAppLockerをバイパスできます。
ReflectivePickやSharpPickを使用して、任意のプロセスでPowerShellコードを実行し、AppLockerをバイパスすることができます。詳細については、https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-modeを参照してください。
資格情報の保存
セキュリティアカウントマネージャー(SAM)
ローカルの資格情報はこのファイルに存在し、パスワードはハッシュ化されています。
ローカルセキュリティ機関(LSA)- LSASS
資格情報(ハッシュ化された)は、このサブシステムのメモリに保存されます。 LSAは、ローカルのセキュリティポリシー(パスワードポリシー、ユーザー権限など)、認証、アクセス証明書などを管理します。 LSAは、ローカルログインのために提供された資格情報をSAMファイル内で確認し、ドメインユーザーを認証するためにドメインコントローラーと通信します。
資格情報は、LSASSプロセス内に保存されています:Kerberosチケット、ハッシュNTおよびLM、簡単に復号化できるパスワード。
LSAシークレット
LSAはディスクにいくつかの資格情報を保存する可能性があります:
Active Directoryのコンピューターアカウントのパスワード(到達不能なドメインコントローラー)。
Windowsサービスのアカウントのパスワード
スケジュールされたタスクのパスワード
その他(IISアプリケーションのパスワードなど)
NTDS.dit
これはActive Directoryのデータベースです。ドメインコントローラーにのみ存在します。
Defender
Microsoft Defenderは、Windows 10やWindows 11、およびWindows Serverのバージョンで利用可能なアンチウイルスソフトウェアです。WinPEAS
などの一般的なペンテストツールをブロックします。ただし、これらの保護をバイパスする方法があります。
チェック
Defenderのステータスを確認するには、PSコマンドレット**Get-MpComputerStatus
を実行できます(RealTimeProtectionEnabled
**の値を確認してアクティブかどうかを知る):
列挙するためには、次のコマンドも実行できます:
暗号化ファイルシステム(EFS)
EFSは、ファイル暗号化キー(FEK)として知られる対称キーを利用してファイルを暗号化して保護します。このキーはユーザーの公開鍵で暗号化され、暗号化されたファイルの$EFS 代替データストリームに保存されます。復号化が必要な場合、ユーザーのデジタル証明書の対応する秘密鍵が使用され、$EFSストリームからFEKを復号化します。詳細はこちらで確認できます。
ユーザーの開始なしでの復号化シナリオには次のものがあります:
ファイルやフォルダがFAT32などの非EFSファイルシステムに移動されると、自動的に復号化されます。
SMB/CIFSプロトコルを介してネットワーク経由で送信される暗号化されたファイルは、送信前に復号化されます。
この暗号化方法により、所有者は暗号化されたファイルに透過的にアクセスできます。ただし、所有者のパスワードを単に変更してログインしても復号化は許可されません。
要点:
EFSは、ユーザーの公開鍵で暗号化された対称FEKを使用します。
復号化には、ユーザーの秘密鍵がFEKにアクセスするために使用されます。
特定の条件下で自動的な復号化が行われます(FAT32へのコピー、ネットワーク転送など)。
追加の手順なしで所有者が暗号化されたファイルにアクセスできます。
EFS情報の確認
このパスが存在するかどうかを確認して、ユーザーがこのサービスを使用したかどうかを確認します:C:\users\<username>\appdata\roaming\Microsoft\Protect
cipher /c \<file>
を使用して、ファイルにアクセスできるユーザーを確認します。また、フォルダ内でcipher /e
およびcipher /d
を使用して、すべてのファイルを暗号化および復号化できます。
EFSファイルの復号化
権限システムであること
この方法では、被害者ユーザーがホスト内でプロセスを実行している必要があります。その場合、meterpreter
セッションを使用して、ユーザーのプロセスのトークンを偽装することができます(incognito
のimpersonate_token
を使用)。または、ユーザーのプロセスに移行
することもできます。
ユーザーのパスワードを知っている場合
グループ管理サービスアカウント(gMSA)
Microsoftは、ITインフラストラクチャ内のサービスアカウントの管理を簡素化するために**グループ管理サービスアカウント(gMSA)を開発しました。通常のサービスアカウントがしばしば「パスワードの有効期限が切れない」**設定が有効になっているのに対し、gMSAはより安全で管理しやすいソリューションを提供します:
自動パスワード管理:gMSAは、ドメインまたはコンピューターポリシーに従って自動的に変更される複雑な240文字のパスワードを使用します。このプロセスはMicrosoftのKey Distribution Service(KDC)によって処理され、手動でのパスワード更新が不要になります。
強化されたセキュリティ:これらのアカウントはロックアウトの影響を受けず、対話型ログインに使用することはできないため、セキュリティが向上します。
複数ホストのサポート:gMSAは複数のホストで共有できるため、複数のサーバーで実行されるサービスに最適です。
スケジュールされたタスクの機能:管理されたサービスアカウントとは異なり、gMSAはスケジュールされたタスクの実行をサポートします。
簡素化されたSPN管理:コンピューターのsAMaccountの詳細やDNS名の変更がある場合、システムは自動的にService Principal Name(SPN)を更新するため、SPNの管理が簡素化されます。
gMSAのパスワードはLDAPプロパティ_msDS-ManagedPassword_に保存され、ドメインコントローラー(DC)によって30日ごとに自動的にリセットされます。このパスワードは、認証された管理者とgMSAがインストールされているサーバーによってのみ取得でき、安全な環境を確保します。この情報にアクセスするには、LDAPSなどのセキュアな接続が必要です。または、接続は'Sealing & Secure'で認証する必要があります。
GMSAPasswordReaderを使用してこのパスワードを読み取ることができます。
また、NTLM relay attackを実行してgMSAのパスワードを読み取る方法については、このWebページをチェックしてください。
LAPS
Local Administrator Password Solution (LAPS) は、Microsoftからダウンロードでき、ローカル管理者パスワードの管理を可能にします。これらのパスワードはランダム化され、ユニークで定期的に変更され、Active Directoryに中央集約されています。これらのパスワードへのアクセスは、ACLを使用して認可されたユーザーに制限されています。適切な権限が付与されると、ローカル管理者パスワードを読み取る機能が提供されます。
PS Constrained Language Mode
PowerShellのConstrained Language Modeは、COMオブジェクトのブロック、承認された.NETタイプのみの許可、XAMLベースのワークフロー、PowerShellクラスなど、PowerShellを効果的に使用するために必要な多くの機能を制限します。
チェック
バイパス
現在のWindowsではBypassは機能しませんが、PSByPassCLMを使用することができます。
コンパイルするには、 参照を追加する必要があります -> 参照の追加 -> 参照の参照 -> 参照の参照 -> C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0\31bf3856ad364e35\System.Management.Automation.dll
を追加し、プロジェクトを .Net4.5 に変更してください。
直接バイパス:
リバースシェル:
You can use ReflectivePickまたはSharpPickを使用して、Powershellコードを任意のプロセスで実行し、制約モードをバイパスできます。詳細については、https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-modeを参照してください。
PS実行ポリシー
デフォルトではrestrictedに設定されています。このポリシーをバイパスする主な方法:
セキュリティ サポート プロバイダー インターフェイス(SSPI)
ユーザーの認証に使用できる API です。
SSPI は、通信を行いたい2台のマシンに適切なプロトコルを見つける役割を果たします。これには、Kerberos が推奨されます。その後、SSPI は使用する認証プロトコルを交渉し、これらの認証プロトコルはセキュリティ サポート プロバイダー(SSP)と呼ばれ、各Windowsマシン内にDLLの形式で配置され、両方のマシンが同じサポートを持っている必要があります。
主要なSSP
Kerberos: 推奨されるもの
%windir%\Windows\System32\kerberos.dll
NTLMv1 および NTLMv2: 互換性のため
%windir%\Windows\System32\msv1_0.dll
Digest: Web サーバーおよび LDAP、MD5ハッシュ形式のパスワード
%windir%\Windows\System32\Wdigest.dll
Schannel: SSL および TLS
%windir%\Windows\System32\Schannel.dll
Negotiate: 使用するプロトコルを交渉するために使用されます(Kerberos または NTLM、デフォルトはKerberos)
%windir%\Windows\System32\lsasrv.dll
交渉は複数の方法を提供するか、1つだけを提供するかもしれません。
UAC - ユーザーアカウント制御
ユーザーアカウント制御(UAC) は、昇格されたアクティビティのための同意プロンプトを有効にする機能です。
Trickest を使用して、世界で最も高度なコミュニティ ツールによって強化された ワークフローを簡単に構築 および 自動化 します。 今すぐアクセスしてください:
Last updated