本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

最新情報

2018.08.09

Black Hat USA 2018 (Day Zero)

昨年に引き続き、今年もBlack Hat USA2018およびDEFCONに参加しています。昨年の参加レポートはこちらになります。Black Hat USA 2018は8月4日から8月7日まで様々なトレーニングが開催され、8月8日から9日にカンファレンスが開催されます。DEFCONは8月9日から8月12日までの開催となっており、筆者は8月6日から参加しています。また、弊社がBlack Hat ArsenalやDEFCONにて機械学習を用いたセキュリティツールに関する出展(Deep Exploit [BLACKHAT ArsenalAI VILLAGE]、GyoiThon[DEMO LABS] )を行っており、そのサポートもする予定です。


Black Hat USAは今年で21回目の開催となり、Google社 PARISA TABRIZ氏の基調講演を皮切りにカンファレンスがスタートします。筆者は業務としてTLPT(脅威ベースのペネトレーションテスト) 詳細はこちらなどを担当しており、Benjamin Delpy氏およびVincent Le Toux氏による「So I became a Domain Controller」など業務に関連するカンファレンスを中心に聴講する予定です。Benjamin Delpy氏はmimikatzというツールの作成者であり、今回、BlueHat IL 2018で発表されたmimikatzの機能であるlsadump::DCshadowに関して発表があるものと思われます。lsadump::DCshadowは、Domain ControllerになりすましてActive Directoryの変更ができるようにするための手法です。詳細については別の機会にご紹介したいと思います。


内部のペネトレーションテストではActive Directoryの管理を行うDomain Controllerをターゲットとして実施することが多いです。Active Directoryの管理者権限を取得できた場合に、Golden TicketやSilver Ticketなどを生成され、長期に渡りなりすましなどに悪用される可能性があります(昨年のブログ)。ドメインに参加するリソースを自由に操作できてしまうため、ペネトレーションテストを実施する際のゴール(侵入ができたらゴール)として設定されることが多いです。ただ、ドメインに参加していないサーバが存在する場合、Active Directoryの管理者を取得できても侵入できません。ですが、ログのローテンションやバッチファイルの実行などのために、運用上、ドメインに参加していないサーバのアカウントをActive Directoryの一般ユーザとして作成しているケースがありました(Figure 1)。



Figure 1

そのため、Active Directoryの管理者を取得後、一般ユーザの認証情報を取得するために解析を行います。Active Directoryに存在するアカウントの認証情報は、ntds.ditというファイル内に格納されおり、ここから認証情報を抽出します。抽出する方法として、いくつか存在しますが、今回のブログではntds.ditを直接解析する方法についてご紹介したいと思います。


ntds.ditファイルを解析する方法は単純で、以下の流れになります。


  1. Ntds.ditファイルをコピー
  2. コピーしたntds.ditファイルをツールによりNTLMハッシュを抽出
  3. NTLMハッシュからパスワードを特定

ntds.ditファイルは、C:¥Windows¥NTDS¥ntds.ditに存在しますが、エクスプローラのコピー&ペーストはntds.ditファイルに対しては行えません。操作を行うとFigure 2のようなエラーとなります。



Figure 2

そのため、コピーを行うためにNinjaCopyなどのツールを用いてコピーを行います。取得したファイルは、secretdumpなどのツールを使用することでFigure 2のようにNTLMハッシュを得ることができます(Figure 3)。



Figure 3

NTLMハッシュから元のパスワードを特定する場合、John the Ripperのようなツールを用いる必要があります。複雑なパスワードが設定されている場合、パスワードの特定に要する時間は膨大になります。そのため、ペネトレーションテストでは、それまで取得したパスワードの傾向なども含めて類推し、パスワードの特定を行います。また、パスワードの特定は、すべてのNTLMハッシュに対して行う必要はなく、ペネトレーションテストの期間の都合上、ドメインに参加していないサーバやそのサーバで稼働するサービスに関連しそうなアカウントに絞って行うこともあります。パスワードが特定できなかった場合でも、ドメインに参加していないサーバがWindowsであれば、Pass the Hashによる侵入ができる可能性もあります。


ntds.ditファイルを解析する方法の利点は、Domain Controllerへの影響が軽微であるということが挙げられます。Domain Controller上では、NinjaCopyによるファイルコピーのみの実施で、ntds.ditファイル自体は、別な環境で解析を行えるためです。また、NinjaCopyはPowerShellスクリプトであるため、ファイルを設置することなくDomain Controller上で実行することも可能です。サービス停止などの不測の事態が起こらないようにテスト対象であるDomain Controllerへの影響を最小限にすることがペネトレーションテストでは重要になります。弊社では、日々、テスト対象への影響を軽微にするための診断手法を調査・研究しており、そのひとつをご紹介しました。


Black Hat USAおよびDEFCONはまだまだ続くので、お酒の飲みすぎには注意しようと心に誓いながらもホテルにあるバーへ飲みに行きます、テキーラを(Figure 4)。



Figure 4


小河 哲之 の他のブログ記事を読む

プロフェッショナルサービス事業部
金子俊介