
KrbRelayUp - a universal no-fix local privilege escalation in windows domain environments where LDAP signing is not enforced (the default settings).
Rubeus と KrbRelay の機能の一部(および謝辞セクションにあるその他の honorable mentions)をラップしたシンプルなツールで、以下の攻撃プリミティブの悪用を効率化します。
これは本質的に、LDAP 署名が適用されていない(デフォルト設定の)Windows ドメイン環境における、普遍的な修正不要のローカル権限昇格です。
更新: こちらに、この攻撃を手動で行う方法に関する @an0n_r0 による優れた解説があります(この攻撃経路向けのオリジナルツールを使用: PowerMad/SharpMad、KrbRelay、Rubeus、SCMUACBypass)
シャドウクレデンシャルを使用してこの攻撃プリミティブをサポートする機能を追加しました。これにより、別のマシンアカウントを追加(または所有)する必要がなくなります。
注: この攻撃方法は、S4U2Self の悪用により、Protected Users(または「アカウントは機密扱いで、委任できません」)の緩和策をバイパスします。
更新: こちらに、この攻撃の ShadowCred メソッドを手動で行う方法に関する @icyguider による優れた解説があります(この攻撃経路向けのオリジナルツールを使用: KrbRelay、Rubeus、SCMUACBypass)。また、NimCrypt2 を使用して各種ツールをパックし、防御機構による検出の一部を回避する方法についても説明されています。
マシン KRB 認証を(LDAP の代わりに)ADCS Web Enrollment へリレーするサポートを追加しました。この攻撃は LDAP へリレーしないため、ドメインで LDAP 署名が適用されていないという要件が不要になります。
注: この攻撃方法は、S4U2Self の悪用により、Protected Users(または「アカウントは機密扱いで、委任できません」)の緩和策をバイパスします。
KrbRelayUp - Relaying you to SYSTEM
FULL: 攻撃チェーン全体を実行します。オプションは RELAY と同じです。ツールがディスク上にある必要があります。
RELAY: 攻撃の第一フェーズです。ローカルマシンアカウントからの Kerberos 認証を強制し、それを LDAP にリレーして、RBCD または SHADOWCRED を使用してローカルマシンに対する制御プリミティブを作成します。
使用法: KrbRelayUp.exe relay -d FQDN -cn COMPUTERNAME [-c] [-cp PASSWORD | -ch NTHASH]
-m (--Method) LDAP へのリレー成功後に使用する悪用手法 <rbcd/shadowcred> (default=rbcd)
-p (--Port) Com Server 用ポート (default=12345)
-cls (--Clsid) ローカルマシンアカウントからの Kerberos 認証を強制するために使用する CLSID (default=90f18417-f0f1-484e-9d3c-59dceee5dbd8)
# RBCD メソッド:
-c (--CreateNewComputerAccount) RBCD 用に新しいコンピュータアカウントを作成します。現在認証されているユーザーが使用されます。
-cn (--ComputerName) RBCD 用に攻撃者が所有するコンピュータアカウントの名前。 (default=KRBRELAYUP$)
-cp (--ComputerPassword) RBCD 用コンピュータアカウントのパスワード。 (default=RANDOM [-c が有効な場合])
# SHADOWCRED メソッド:
-f (--ForceShadowCred) 新しいシャドウクレデンシャルを追加する前に、攻撃対象のコンピュータアカウントの msDS-KeyCredentialLink 属性をクリアします。 (任意)
# ADCS メソッド:
-ca (--CAEndpoint) CA エンドポイントの FQDN (default = DC と同じ)
-https セキュアな HTTPS 経由で CA エンドポイントに接続します (HTTP の代わりに)
-cet (--CertificateTemplate) 要求する証明書テンプレート (default=Machine)
SPAWN: 攻撃の第二フェーズです。適切な制御プリミティブを使用して Kerberos サービスチケットを取得し、それを使用して SYSTEM として実行される新しいサービスを作成します。
使用法: KrbRelayUp.exe spawn -d FQDN -cn COMPUTERNAME [-cp PASSWORD | -ch NTHASH] <-i USERTOIMPERSONATE>
-m (--Method) RELAY フェーズで使用した悪用手法 <rbcd/shadowcred> (default=rbcd)
-i (--Impersonate) 偽装するユーザー。対象コンピュータのローカル管理者である必要があります。 (default=Administrator)
-s (--ServiceName) 作成するサービスの名前。 (default=KrbSCM)
-sc (--ServiceCommand) サービスコマンド [binPath]。 (default = SYSTEM として cmd.exe を起動)
# RBCD メソッド:
-cn (--ComputerName) RBCD 用に攻撃者が所有するコンピュータアカウントの名前。 (default=KRBRELAYUP$)
-cp (--ComputerPassword) RBCD 用コンピュータアカウントのパスワード。 (-cp または -ch のいずれかを指定する必要があります)
-ch (--ComputerPasswordHash) RBCD 用コンピュータアカウントのパスワード NT ハッシュ。 (-cp または -ch のいずれかを指定する必要があります)
# SHADOWCRED | ADCS メソッド:
-ce (--Certificate) Base64 エンコードされた証明書、または証明書ファイルへのパス
-cep (--CertificatePassword) 証明書パスワード (該当する場合)
KRBSCM: 現在読み込まれている Kerberos サービスチケットを使用して、SYSTEM として実行される新しいサービスを作成します。
使用法: KrbRelayUp.exe krbscm <-s SERVICENAME> <-sc SERVICECOMMANDLINE>
-s (--ServiceName) 作成するサービスの名前。 (default=KrbSCM)
-sc (--ServiceCommand) サービスコマンド [binPath]。 (default = SYSTEM として cmd.exe を起動)
一般オプション:
-d (--Domain) ドメインの FQDN。 (任意)
-dc (--DomainController) ドメインコントローラの FQDN。 (任意)
-ssl LDAP over SSL を使用します。 (任意)
-n ST をインポートする際に PTT の代わりに CreateNetOnly (ディスク上にある必要があります) を使用します (FULL モード使用時に有効)
-v (--Verbose) 詳細出力を表示します。 (任意)
