Microsoft Defender for Business/EndpointでLive Responseを使う

皆さんこんにちは。国井です。
前回の投稿で私のダメ仮想マシンが乗っ取られたので調査しましょうというステップを見てもらいました。そのときにLive Responseを使うとリアルタイムで対象のデバイスに接続して様々な調査ができることを紹介しました。

しかし、まだ解決できていないことがあります。

そうです、私の仮想マシンにRDPに接続できないままの状態になっているので、再びアクセスできるようにLive Responseで設定をしてみましょう。

日本を取り戻す

私のやられたデバイス、アラートを見たら今流行りの当事国のIPアドレスからのものでした。
もうお前らにはアクセスさせないぞ!ということでチャレンジをスタートします。
Live Responseのコマンドはコマンドプロンプトのコマンドと同じことができるわけではなく、利用できるコマンドはかなり限定的です。

もしLive Responseのコマンド以上のことをやりたいと思ったらPowerShellのスクリプトファイルを作成し、Live Responseの[ライブラリへのファイルのアップロード]を使ってスクリプトファイルをアップロードし、アップロードしたファイルをLive Responseから実行してあげることで様々な命令を送り込むことができます。
image

そしてアップロードしたファイルはLibraryという領域に保存されます(Library内のファイル一覧はLibraryコマンドで確認できます)。Library領域はLive Responseのために用意された特別な領域です。そのため、Cドライブのどこどこのフォルダーに保存したい!みたいな要望があれば、そのときはputfileコマンドでコピーをしてください。

スクリプトの実行

Library領域に保存したファイルを実行するときはrunコマンドを使います。
私が最初に実行したスクリプトは次のような内容を書いてみました。

$pass=ConvertTo-Securestring  ‘P@ssw0rd’ -AsPlainText -Force
New-LocalUser -Name Oligarchy -Password $pass `
-AccountNeverExpires
Add-LocalGroupMember -Group “Administrators” -Member ` Oligarchy
Add-LocalGroupMember -Group “Remote Desktop Users” `
-Member Oligarchy

既に仮想マシンにアクセスするためのユーザーはすべてパスワードを変えられてしまったので、新しいユーザーを作成し、AdministratorsグループとRemote Desktop Usersグループのメンバーになるように構成しました(そのパスワードじゃ、またやられちゃう..)。
新しく作成したユーザーでRDP接続してみます。

ユーザー名を入力して、
パスワードを入力して、、

結果は同じ。あんたRemote Desktop Usersグループのメンバーじゃないからダメ。と言われてしまいました。

Next move

確かにRemote Desktop Usersグループのメンバーにユーザーを追加したのに、Remote Desktop Usersグループのメンバーじゃないからダメと言われる。。
念のため「Get-LocalGroupMember -Group “Remote Desktop Users”」コマンドを記したGet-rdu.ps1ファイルを作成し、アップロードして、実行してみました。
確かに作成したユーザーはRemote Desktop Usersグループのメンバーなんですよね。。

image
うーん、なんでだろ。
しばし考えたのちに気が付きました。RDP接続できるユーザーは

Remote Desktop Usersグループのメンバーだから接続できるのではなく、
[リモートデスクトップサービスを使ったログオンを許可]の権限が割り当てられているから接続できるのだ

と。

image

RDP接続できないので、当然[ローカルセキュリティポリシー]画面など見ることはできません。しかし、ローカルセキュリティポリシーをsecpolコマンドで変更することはできます。
そこで今度はsecpolコマンドでローカルセキュリティポリシーをデフォルト設定に戻すコマンドを実行することにしました。
コマンドはこちらです。

secedit /configure /cfg c:\windows\inf\defltwk.inf /db defltbase.sdb /verbose

set-secpol.ps1というファイルにして保存して、Libraryにアップロードし、run set-secpol.ps1と実行してみました。
その後、もう一度作成したユーザーでサインインしてみると見事にRDP接続に成功しました。

image

今回はLive Responseでのスクリプトの実行方法について、実際のインシデント対応画面のケースをもとに紹介しました。
言い忘れていたのですが、スクリプトを実行するときに署名がついていないものは実行エラーになります。そのため、Microsoft 365 Defender管理センターの[設定]-[エンドポイント]-[高度な機能]欄にある[Live Response の署名のないスクリプトの実行]を事前に有効にしておいてください。