
ドメイン全体に Shadow Credentials をスプレーし、ドメイン内の他のオブジェクトに対する長い間忘れられていた GenericWrite/GenericAll DACL を悪用するためのツールです。
多くのエンゲージメントにおいて、BloodHound で "Everyone" / "Authenticated Users" / "Domain Users" といった、ドメイン内のほぼ全ユーザーを含む広範なグループが、他のオブジェクトに対して GenericWrite/GenericAll DACL を持っているのを目にします。

これらの権限は、対象オブジェクトに Shadow Credentials を追加し、その TGT と NT ハッシュを取得するために悪用されます。
そこで、ドメイン全体に Shadow Credentials をスプレーして、どこが引っかかるか試してみることを思いつきました(明らかに、このアプローチはステルス性を必要としないエンゲージメントに適しています。ステルスが要求されるレッドチームでは使用しないでください)。Shadow Credentials が正常に追加されたら、PKINIT + UnPACTheHash の一連の処理を行い、NT ハッシュを取得します。
処理が非常に高速であるため、エンゲージメントの最初の段階で使用でき、おそらく本格的に開始する前にいくつかのユーザーやコンピューターを制圧できるでしょう。
注: 以前の ツール からコードを多く流用しているため、AV/EDR がこれを KrbRelayUp と誤認識する可能性があります。
以下のように動作します:
ShadowSpray は CTRL+C をサポートしています。いつでも実行を停止したい場合は CTRL+C を押すと、ShadowSpray はそれまでに取得した NT ハッシュを表示して終了します(以下のデモを参照)。
__ __ __ __ __ __
/__` |__| /\ | \ / \ | | /__` |__) |__) /\ \ /
.__/ | | /~~\ |__/ \__/ |/\| .__/ | | \ /~~\ |
Usage: ShadowSpray.exe [-d FQDN] [-dc FQDN] [-u USERNAME] [-p PASSWORD] [-r] [-re] [-cp CERT_PASSWORD] [-ssl]
-r (--RestoreShadowCred) 攻撃完了後に "msDS-KeyCredentialLink" 属性を復元します。(オプション)
-re (--Recursive) ShadowSpray 攻撃を再帰的に実行します。(オプション)
-cp (--CertificatePassword) 証明書のパスワード。(デフォルト = ランダムなパスワード)
一般オプション:
-u (--Username) 初期 LDAP 認証のユーザー名。(オプション)
-p (--Password) 初期 LDAP 認証のパスワード。(オプション)
-d (--Domain) ドメインの FQDN。(オプション)
-dc (--DomainController) ドメインコントローラーの FQDN。(オプション)
-ssl LDAP over SSL を使用します。(オプション)
-y (--AutoY) ShadowSpray 攻撃の開始確認をスキップします。(オプション)
Elad Shamir 氏の Shadow Credentials に関するブログ記事より引用:
環境内で PKINIT 認証が一般的でない場合、または対象アカウントにとって一般的でない場合、「Kerberos 認証チケット (TGT) が要求されました」イベント (4768) は、証明書情報属性が空白でない場合に異常な動作を示す可能性があります。
対象アカウントに対して Active Directory オブジェクトの変更を監査する SACL が構成されている場合、「ディレクトリサービスオブジェクトが変更されました」イベント (5136) は、msDS-KeyCredentialLink を変更する主体が Azure AD Connect 同期アカウントまたは ADFS サービスアカウント(通常は Key Provisioning Server として機能し、ユーザーのこの属性を正当に変更する)でない場合に異常な動作を示す可能性があります。
より具体的な予防策は、キー信頼パスワードレス認証に登録されることを意図していないアカウント、特に特権アカウントに対して、属性 msDS-KeyCredentialLink の変更をプリンシパル EVERYONE に拒否するアクセス制御エントリ (ACE) を追加することです。
UnPACing とシャドウ資格情報の検出(著者:Henri Hambartsumyan、FalconForce 所属)
ShadowSpray に固有の検出: