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

最新情報

2018.08.24

Black Hat USA2018参加レポート(その2)

前回の参加レポートでは、ntds.ditファイルの解析について取り上げましたが、今回はBenjamin Delpy氏およびVincent Le Toux氏による「So I became a Domain Controller」で発表のありましたmimikatzの機能であるlsadump::dcshadow(DCShadow)について取り上げたいと思います。mimikatzはBenjamin Delpy氏が作成したWindowsのメモリ上に存在する認証情報の収集などを行うためのツールです。同氏はこれまでにmimikatzを用いたGolden Ticketによるなりすましなどインパクトのある発表を多くされています。Black Hat USA2018では、2018年1月23日、24日に開催されたBlueHat IL 2018で発表のあったDCShadowについて、デモを交えて説明されていました。


mimikatzには、DCShadowと似たような機能としてlsadump::dcsync(DCSync)という機能も存在します。それぞれどういう違いがあるのか、そこから見ていきましょう。と、その前に、Active Directoryにおけるドメインコントローラーに関して簡単に記載します。ドメインコントローラーは認証情報を管理したり、利用者からの認証を行ったりするために利用されます。ドメインコントローラーが1台しかなく運用している場合、そのドメインコントローラーの障害によりActive Directory内のリソースへのアクセスができなくなったり、認証情報のキャッシュ状況にも依りますが端末へのログインさえできなくなってしまう可能性もあります。そのため、ドメインコントローラーは一般的に複数台で構成させます。複数のドメインコントローラーが存在しても、同一の認証情報を保持しているため、どのドメインコントローラーに対して認証を行っても、問題なく認証が行われ、リソースを利用することができます。認証情報は、ドメインコントローラー上に存在するntds.ditファイルに認証情報が格納されています。ですが、ある利用者がパスワードを変更した場合はいったいどうなるのでしょうか。物理的な構成などを考慮し設計(site)されたサーバの中から優先度の高いドメインコントローラーに対して利用者は通信を行います。利用者のパスワード変更が発生するとドメインコントローラーは、ほかのドメインコントローラーに対して最新の情報を伝え、ntds.ditファイルが常に同じものになるように動作します。このように複数台のドメインコントローラー間で同一の認証情報を保持します。


では、話を戻して、DCSync、DCShadow についてです。DCSync、DCShadowの両方ともドメインコントローラーへのなりすましに起因する攻撃であり、端的に言うとDCSyncは情報取得が可能、DCShadowは情報の改ざんが可能である攻撃です。


まずは、DCSyncです。MS-DRSR(Directory Replication Service Rmote Protocolで、Active Directoryでのデータのレプリケーションや管理に利用されています)を用いてドメインコントローラー間で情報のやりとりをしており、Administrators、Domain Admins、Enterprise Admins、Domain Controllersグループに属しているアカウントの権限を用いて、ドメインコントローラーになりすまして利用者のパスワードハッシュ(NTLMハッシュ)を取得することができます。パスワードのハッシュであり、平文のパスワードを取得できるわけではありませんが、KRBTGTアカウントのパスワードのNTLMハッシュが取得される可能性があります。KRBTGTアカウントのパスワードは、Active Directoryで認証に利用されるTGT(Ticket Granting Ticket)を生成するために利用されます。そのため、KRBTGTアカウントのパスワードのNTLMハッシュが取得されることで、永続的な管理者権限が取得可能な攻撃手法であるGolden Ticketを生成される可能性があります。


~ 抜粋 ~
[DC] 'pentest.local' will be the domain
[DC] 'PEN-DC.pentest.local' will be the DC server
[DC] 'krbtgt' will be the user account

Object RDN           : krbtgt

** SAM ACCOUNT **

SAM Username         : krbtgt
Account Type         : 30000000 ( USER_OBJECT )
User Account Control : 00000202 ( ACCOUNTDISABLE NORMAL_ACCOUNT )
Account expiration   :
Password last change : 2017/06/07 14:21:38
Object Security ID   : S-1-5-21-1822236461-470638444-1246849989-502
Object Relative ID   : 502

Credentials:
  Hash NTLM: 0af26637fde7f8600b449ce7d86d4300
~ 抜粋 ~
Figure 1

DCShadowもDCSyncと同様にMS-DRSRを用いてレプリケーションを行うことで、Active Directoryの情報を改ざんすることが可能となります。Figure 2は、ドメインコントローラーの管理コンソールで変更対象となるユーザのプロパティを開いたもので、改ざん前の状態です。



Figure 2

Figure 3はDCShadowで、ユーザ名「user01」の「説明」を「DCShadow Changed!!」に書き換えた様子です。


~ 抜粋 ~
** Attributes checking **

#0: description

** Objects **

#0: user01
DN:CN=user01,CN=Users,DC=pentest,DC=local
  description (2.5.4.13-d rev 0):
    DCShadow Changed!!
    (4400430053006800610064006f00770020004300680061006e0067006500640021002100000
0)
~ 抜粋 ~
Domain:         DC=pentest,DC=local
Configuration:  CN=Configuration,DC=pentest,DC=local
Schema:         CN=Schema,CN=Configuration,DC=pentest,DC=local
dsServiceName:  ,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration
,DC=pentest,DC=local
domainControllerFunctionality: 6 ( WIN2012R2 )
highestCommittedUSN: 7000591

** Server Info **

Server: PEN-DC.pentest.local
  InstanceId  : {cdf55421-6e96-497b-8411-4c94a1c43b81}
  InvocationId: {0b11a7e6-15f6-419e-aaf4-49dce3a68e02}
Fake Server (not already registered): PEN-WIN7.pentest.local
~ 抜粋 ~
  
Figure 3


Figure 4

DCShadowでは、Active Directoryで管理されている情報を改ざんできてしまうため、特定ユーザの権限の書き換えやSID Historyの改ざんによるなりすましなどに悪用される可能性があります。


DCSyncおよびDCShadowは脆弱性ではなく、Active Directoryの仕様であるため、セキュリティパッチなどは提供されていません。そのため、Administrators、Domain Admins、Enterprise Admins、Domain Controllersグループに属しているアカウントが乗っ取られないようにすることがポイントとなります。


今回、Black Hat USA2018およびDEFCONに参加し、海外におけるペネトレーションテストの実施状況などが垣間見えることがありました。対象とする企業規模が違うためかもしれませんが、複数のフォレストを対象としたシナリオなど日本との違いを感じました。日本とアメリカとの違いを感じたのは、ペネトレーションテストの方法だけではありません。ラスベガスのとあるお店では、Happy HourがPM2時から6時まで提供されており、さらに、Reverse Happy Hourなる仕組みが存在していました。Reverse Happy HourはPM10時から閉店まで値引きを行うというものでした(ただし、スナックだけのようです)。日本でもぜひ、ドリンクを対象にしたReverse Happy Hourを導入してほしいなぁと思いながら、飲みに行ってきます、テキーラを。



Figure 5

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

プロフェッショナルサービス事業部
小河哲之