以前の私たちは、「Windowsのローカル認証」、「Windowsネットワーク認証」、「Windowsドメイン認証」と「SPNスキャン」を導入し、領域が関連する事柄を説明するために続けています。
0x01の紹介
Windows 2000のリリースとActive Directoryは、マイクロソフトでは、Windows NTおよびWindows 95上で計画していた場合もないだけではセキュリティ上のさまざまな問題を生成することを意味し、Active Directoryは、より危険なコンフィギュレーションにつながるサポートしています。また、Microsoftは、Windowsクライアントの異なるバージョンの数にKerberosプロトコルをサポートすることを確認する必要があることを意味します。このアイデアを実現するための簡単な方法は、Kerberosプロトコルを使用することです···RC4暗号化アルゴリズム、およびNTLMパスワードは、Kerberosチケットを暗号化または署名するために使用することができ、秘密鍵暗号化アルゴリズムのキーとしてハッシュ。そのため、攻撃者のために、一度NTLMパスワードハッシュを見つけ、あなたは自由に戻って再Active Directoryのドメイン権限を含む、使用することができます(例:金と銀のチケットチケットの攻撃を)。
我々は以前SPNによって会場「SPNスキャン」の完全な理解をSPNない場合は、ドメインサービスの発見を理解するためにされています
0x02のケルベロス通信フロー
ここで与えられたオンラインコミュニケーションフローケルベロスについて学ぶために
ユーザー名とパスワードを持つユーザー
1a.
NTLMハッシュのために、オリジナルのプレーンテキストのパスワードを変換し、ハッシュおよびタイムスタンプを使用して暗号化。最後に、KDCに暗号化された認証の結果(AS-REQ)認証チケット(TGT)要求を送信します。
1b.
ドメインコントローラ(KDC)チェックユーザー情報(ログイン制限、グループメンバーなど)とチケット認可チケットを作成します(チケットチケット-TGTの付与)。
2.
TGTは、暗号化された署名と(AS-REP)ユーザーに返します。唯一のKerberosサービス(KRBTGT)ドメインがTGTデータを開いて読むことができます。
3.
ユーザーはチケット認可サービス(TGS)チケット(TGS-REQ)を要求すると、TGTがDCに送信されます。DCとオープンTGT PACチェックサム検証 - DCを開くことができ、チェックサムによって検証することができた場合、チケットは、その後、TGTが有効です。その後、データ・レプリケーションTGTをTGSチケットを作成するために使用されます。
4.
TGSにターゲットサービスアカウントのNTLMパスワードハッシュを使用すると、暗号化し、ユーザー(TGS-REP)に暗号化された結果を送信します。
5.
ユーザは、サービスをホストするサーバの対応するポートに接続され、サーバにTGS(AP-REQ)を送信します。ホストされたサービスは、NTLMパスワードは、サービスアカウントのオープンTGSチケットをハッシュ使用しています。
6.
クライアント認証が互いの間に必要とされている場合は(あなたは、MS15-011を考えることができます:UNCの強化を2月にリリースされたグループポリシーのパッチでは)この手順を実行します。
第四のステップでは、ユーザが・RC4-HMAC NTLMハッシュ暗号化対象のサービスインスタンスTGS、彼の暗号化アルゴリズムによって生成されます。・私たちは、このTGSを取得した後、その後、彼らは徹底的な方法することができ、生成TGS同じパスワードを表現することができれば、それに比べて、正確です
そして、私たちが理解する必要があるいくつかのポイントがあります
ドメインコントローラは、サービスのSPNを照会1.
SPNが登録されている場合机器账户computers
の下で、すべてのクエリを実行します机器账户
対応するアカウントを見つけ、servicePrincipalNameのプロパティのを。
それが登録されている場合域用户账户users
の下で、すべてのクエリを実行します域用户账户
、のservicePrincipalNameプロパティのを、それに対応するアカウントを見つけます。
該当するアカウントを見つけた後、NTLMハッシュTGSを生成するためにそれを使用。
2.ドメインは、所有主机
SPNを照会することができますです
3.ドメインは、任何用户
任意のサービスドメインを要求することができTGSにあります
だから、いずれかのホストドメインが、あなたは、ドメインTGS、その後、ブルートフォースへのすべてのサービス要求をSPNを照会することができますが、平文から抜け出すために、ユーザーがマシンアカウントを使用することができる唯一のドメインを使用することはできませんリモート所以我们的关注点主要就在域用户下注册的SPN
接続。
0x03の実験
まず、サーバーにログイン
域控
192.168.5.130
Administrator
Win7
192.168.5.238
机器账号SECQUAN_WIN7-PC\secquan_win7
域用户账号ZHUJIAN\win7
私たちは、クエリに次のコマンドを使用します。
setspn -q */*
我々はスキャンSPN内容についても説明されているが、我々はまた、我々は、ドメインユーザーSPNの下に登録されているに集中したいMSSQLサービスが前に言っているマシンアカウントに登録されていることがわかりました
物事を見る必要もあり、使用Kerberos認証ネットワークは、SPN登録サーバーのコンピュータアカウント(などのNetworkServiceまたはLocalSystemのような)またはユーザーアカウントの下で構築されなければなりません。
**ビルトインアカウントの場合、SPNが自動的に登録されます。サービスは、ドメインユーザーアカウントで実行されている場合は、手動で使用するアカウントのSPNを登録する必要がありますので、私たちは手動でドメインユーザーSPNの下に登録する必要があります。
さんが使用してみましょうklist
コマンドを、法案に関するお問い合わせは、現在のコンピュータの下に存在します
その後、我々は、ドメインユーザーSPN登録の下でMSSQLサービスに来ます
setspn -A MSSQLSvc/SECQUAN_WIN7-PC.zhujian.com zhujian\win7
登録が完了した後、私たちは、あなたが次のドメインユーザーを登録していることを確認し、参照します
より多くの価値は、ユーザーのドメインラインで見つけることができました
そして、SPNのKerberosチケットを要求
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList " MSSQLSvc/SECQUAN_WIN7-PC.zhujian.com "
メモは保存され、その後、再び照会されています
以前より、および暗号化タイプRC4-HMAC
その後、使用mimikatz
法案をエクスポートします
そして、あなたはtgsrepcrackまたは保存されたハッシュクラック利用hashcatを使用することができます
ここでは、tgsrepcrackをテストするために使用します
python tgsrepcrack.py mima.txt 1-40a00000-win7@MSSQLSvc~SECQUAN_WIN7-PC.zhujian.com-ZHUJIAN.COM.kirbi
成功したパスワードを見つけることができ爆破されました
** PS:使用して他のツールは、メソッドに似ている、ツールは、辞書にフォーカス同じです
0x04のkerberoastingは、バックドアを使用します
我々は、登録さSPN権限を持っている場合は、我々はユーザーが指定したドメインSPNを登録しを与えることができ、その後、TGSを取得した後、パスワードをクラックするために取得
ここでは誰もがプロセスをどのように理解できるように、我々はインターネットに例を使用し、その他のコンテンツは、前述と同じです
いいえ公共のデビュー記事ません:意図しないたわごと(wuxinmengyi)
これは、レコード赤チーム学習、校長ノート、公衆の個人的な成長の数であります
スキャンコードへの懸念