TryHackMe

【TryHackMe】Active Directory Hardening

どうも、のみぞうです。Hardening競技会に役立つかもしれないTryHackMeのルームを順番にやっていこうシリーズ。ラスボスはActiveDirectoryです。ADぜんぜんわかってないからめちゃくちゃ寄り道しながら解いてる記録です。

Hardening競技会で役立つかもしれないTryHackMeシリーズ、過去のやつはこちら↓

そもそもActiveDirectoryのことよくわからない~という方はこちらがわかりやすくてオススメです。そもそもドメイン…?OU…?ポリシー…?みたいなところからやさしく説明してくれてます。

Task1 Introduction

No answer needed
このルームで取り上げるトピックはこれですって説明

  • 安全な認証方法
  • グループポリシーによるホストの保護
  • 最小特権モデルの実装
  • 既知のAD攻撃に対する保護
  • 復旧計画 (侵害後のシナリオ)

なるほどどれも重要そうだ。マシンにアクセスする。自分でAD環境たてるのってまあまあ面倒なのでこれが無料でできるのは便利だ。

Task2 Understanding General Active Directory Concepts

ADの一般的な概念を理解しろとのこと。会社とかでパソコンの管理に触れてないとまずActiveDirectoryって関わらないところだと思うので(逸般の誤家庭を除く)概念を理解するのってむずかしいなーと思う。

Active Directory Domains and Trustの画面を見る。

Windows環境でのドメインと信頼関係を管理するためのインターフェース。ここで、ドメイン間の信頼関係を設定したり、ドメインのプロパティを編集できる。

ユーザーのパスワード変更してみる

実はやったことなかったので…ついでに手動でやる操作方法を確認した。

サーバーマネージャー>ツール>ActiveDirectoryユーザーとコンピューター

OUを選択してユーザーを右クリック>パスワードのリセット

Hardeningではスクリプトとか組んで自動でやると良いんだろうけど。当日の環境で準備したスクリプトが動かなくて結局手で変えたことがあったなあ…。手動の方が早いこともあるかもしれない。

アカウントの無効化

アカウントを選んで右クリックして「アカウントを無効にする」

無効にするとちょっとアイコンが変わる

プロパティから変える方法もある

アカウントタブでアカウント無効化にチェックを入れてOK

さて、遊びはこの辺にしてタスクをやっていく。

What is the root domain in the attached AD machine?

接続されている AD マシンのルート ドメインとは何ですか?

tryhackme.loc

Task3 Securing Authentication Methods

認証方法の保護。グループポリシー管理

右クリックしてEdit

または、ファイル名を指定して実行のところで「gpmc.msc」って入力すると起動する。

LMハッシュ無効化

Windows のユーザー アカウントのパスワードはクリア テキストで保存されません。代わりに、2 種類のハッシュ表現でパスワードを保存します。ユーザー アカウントのパスワードが変更されるか、15 文字未満に設定されると、LM ハッシュ (LAN Manager ハッシュ) と NT ハッシュ (Windows NT ハッシュ) の両方が Windows によって生成され、 ADに保存できます。LM ハッシュは NT よりも比較的弱いため、高速ブルート フォース攻撃を受けやすいです。 最善の推奨事項は、Windows がパスワードの LM ハッシュを保存しないようにすることです。

画面見てみたけど保存「しない」ときは「Enabled」なんですね。わかりにくい!(英語力の問題)今はデフォルトでEnabledになっているらしい。

次回のパスワード保存時ってことは、設定を変更したらパスワードを変えたほうがいいんでしょうね。

NTLMv1の無効

これはRoomに書いてないけど最近こんな記事を読んだので無効にしたほうがいいんだろうか…怖いけどチャレンジ事項では…と思うので手順を確認してみる。

一番強めのやつを選ぶとこう…?これでいいのか…不安…

いやもしかしたらバージョンとかじゃなくてそもそも無効化したほうがいいのかなあ…。という気持ちにもなったので。やり方をしらべておく。

NTLM認証の無効化

多分ログとか見ながら問題ないことを確認しながら適用していくのだと思うんだけど…そんなことできる自信がないなあ。

設定後、ポリシーを適用させる

gpupdate /force

AS-REP-Roasting攻撃の対策

もうだいぶタスクとは関係なくなってきちゃったけど、OSCPとかでよく聞く初歩的なやつへの対策くらいはしておきたいと思ってやり方を調べてみる。

AD ユーザーとコンピュータ管理ツール

対象ユーザーのアカウントの「Kerberos 事前認証を必要としない」にチェックがないことを確認する。

切りがないしそろそろタスクやるか…

Change the Group Policy Setting in the VM, so it does not store the LAN Manager hash on the next password change.

VM のグループ ポリシー設定を変更して、次回のパスワード変更時に LAN Manager ハッシュを保存しないようにします。

No answer needed

やった

What is the default minimum password length (number of characters) in the attached VM?

接続された VM のデフォルトの最小パスワード長 (文字数) は何ですか?

7

Task 4 Implementing Least Privilege Model

最小特権モデルの実装。これ英語で勉強するのは難しいなー。言いたいことはわかるけどこのタスクだけだと具体的にどうやるの??と疑問が残る。別で勉強が必要そうだなあ。

Computers and Printers must be added to Tier 0 – yea/nay?

コンピューターとプリンターは Tier 0 に追加する必要があります – はい/いいえ?

nay

Tier0は一番権限が強いところみたいなのでそこまではいらんのでしょうね。

Suppose a vendor arrives at your facility for a 2-week duration task. Being a System Administrator, you should create a high privilege account for him – yea/nay?

ベンダーが 2 週間の期間のタスクのために施設に到着するとします。システム管理者であるあなたは、その人のために高い特権のアカウントを作成する必要があります – はい/いいえ?

nay

それはそのベンダーが何をしたいかによるのではないの…?よくわからん。でもたぶんいらんのだろうなあ。文脈的に。

Task 5 Microsoft Security Compliance Toolkit

Microsoft Security Compliance Toolkit(MSCT)は、ローカルとドメインレベルのポリシーを実装・管理するためのMicrosoft公式のツールキットです。複雑なポリシー構文やスクリプトを気にする必要はありません。Microsoftがエンドユーザー環境に合わせたセキュリティ基準を提供しています。

良さそう。ダウンロードしてみる。

IEの広告が目立ちすぎてて最初うっかりリンク切れかと思った…

バージョンを選ぶ必要がある。

powershellで実行

ほほぅ。なんだかとっても良さそうな雰囲気があるんだけどうまく使いこなせる自信がないなあ。ちゃんと適用されてるのか良くわからない。とりあえず自分のPCでは実行してみたが効果がまだ実感できない。要研究。

Find and open BaselineLocalInstall script in PowerShell editor – Can you find the flag?

PowerShellエディターでBaselineLocalInstallスクリプト を見つけて開きます- フラグは見つかりますか?

デスクトップのファイルを開くだけ。

Find and open MergePolicyRule script (Policy Analyser) in PowerShell editor – Can you find the flag?

PowerShellエディターでMergePolicyRuleスクリプト (ポリシー アナライザー)を見つけて開きます- フラグは見つかりますか?

超どうでもいいけどフラグの形式がばらばらで謎

Task 6 Protecting Against Known Attacks

既知の攻撃からの保護。なるほど大事だ。

Kerberoasting: 攻撃者がActive Directory(AD)に特権アクセスを得る一般的な手法です。Kerberosのチケット付与サービスを悪用して暗号化されたパスワードを要求し、オフラインでこれを破る手法です。多要素認証(MFA)やKerberosキー配布センター(KDC)の頻繁なパスワードリセットで防ぐことができます。

弱い・簡単に推測されるパスワード: 弱いまたは簡単に推測できる古いパスワードは、侵入者にとって最も狙いやすいターゲットです。強力なパスワードを使用することが推奨されます。

RDPのブルートフォース攻撃: 攻撃者はスキャンツールを使用して弱い認証情報をブルートフォース攻撃します。成功すると、すぐに侵害されたシステムにアクセスします。RDPを追加のセキュリティコントロールなしで公開しないことが最良です。

公開共有フォルダ: ADの設定中に、一部の共有フォルダが公開されているか認証がされていない場合、攻撃者が横断移動の足がかりを得ます。PowerShellの「Get-SmbOpenFile」コマンドレットを使用して、不要な共有を見つけて適切にアクセスを設定できます。

この中だとパスワードの変更はやるとして、あとHardeningでできることはGet-SmbOpenFileでいらん共有がないか確認するとかかなあ。うーん。

Does Kerberoasting utilise an offline-attack scheme for cracking encrypted passwords – yea/nay?

Kerberoasting は、暗号化されたパスワードを解読するためにオフライン攻撃スキームを利用しますか? はい/いいえ?

yea

要するにパスワードのハッシュをダウンロードしてきてブルートフォースする方法なのでオフライン。

As per the generated report, how many users have the same password as aaron.booth?

生成されたレポートによれば、aaron.booth と同じパスワードを持っているユーザーは何人いますか?

急になんなんだこの画面は。説明がなくて戸惑うけどとりあえず186。

Task 7 Windows Active Directory Hardening Cheat Sheet

Windowsのルームと同じくチートシートがダウンロードできた。

まとめ

自分で環境を構築する手間が必要なくいろいろ操作が試せて便利だった(でも本来はそういう用途ではない…)ルームの学習内容だけだといろいろ足りない感じがするので勉強を続けることが必要なのだなーと思った。小学生の感想文か。