管理共有を使った遠隔実行の痕跡
ファイルサーバ FS01 のイベントログ(主な項目を抜粋)から推測できることとして,最も適切なものはどれか。192.0.2.45 は社内の PC である。
時刻 ログ ID 内容
10:02:11 Security 4624 ログオン タイプ=3 アカウント名=adm-sato ソース ネットワーク アドレス=192.0.2.45
10:02:11 Security 5145 共有名=\\*\ADMIN$ 相対ターゲット名=PSEXESVC.exe アクセス=WriteData
10:02:12 System 7045 サービス名=PSEXESVC サービス ファイル名=%SystemRoot%\PSEXESVC.exe
10:02:13 Security 4688 新しいプロセス名=C:\Windows\System32\cmd.exe 作成元プロセス名=C:\Windows\PSEXESVC.exe- アFS01 の利用者が,管理共有を経由して 192.0.2.45 の PC に実行ファイルを書き込み,その PC 上でサービスを登録してコマンドを実行した。
- イ何者かが FS01 にリモートデスクトップで対話的にログオンし,デスクトップの操作によって cmd.exe を手動で起動した。
- ウ192.0.2.45 から adm-sato の資格情報で管理共有に実行ファイルが置かれ,それがサービスとして登録・起動されて,FS01 上でコマンドが遠隔実行された。
- エ攻撃者が FS01 で稼働しているサービスの脆弱性を突き,認証を経ずに FS01 上で cmd.exe を起動した。
正解と解説を見る
正解 ウ
この問題の基礎知識
- Windows のセキュリティログで,ID 4624 はログオンの成功を示し,ログオンタイプ 3 はファイル共有へのアクセスなどのネットワークログオン,タイプ 10 はリモートデスクトップによるログオンである。
- ID 4688 は新しいプロセスの作成を示し,作成元プロセスから起動の経路が分かる。System ログの ID 7045 は新しいサービスのインストールを示す。
- ADMIN$ や C$ は Windows が既定で作成する管理共有で,管理者権限が必要である。PsExec は管理共有に PSEXESVC.exe を置いてサービスとして起動し,遠隔でコマンドを実行するツールである。
- ログは,どの機器で記録されたもの(接続先か接続元か)かと,ソースネットワークアドレスが示す接続の向きを確かめてから読む。
ログは FS01 で記録されたもので,ネットワークログオン(4624)の送信元が 192.0.2.45 なので,PC から FS01 への接続である。サービスの登録(7045)とプロセスの作成(4688)も FS01 上の事象であり,方向が逆である。
cmd.exe の作成元は,デスクトップから手動で起動した場合の explorer.exe などではなく PSEXESVC.exe である。直前に ADMIN$ への PSEXESVC.exe の書込みとサービスの登録(7045)があり,対話的な手動操作ではなくサービスを介した遠隔実行の痕跡である。
adm-sato のネットワークログオン(4624,タイプ 3)に続く ADMIN$ への PSEXESVC.exe の書込み,7045 による PSEXESVC サービスの登録,PSEXESVC.exe を作成元とする cmd.exe の起動は,PsExec による遠隔実行で接続先に残る典型的な痕跡である。正規の資格情報を悪用した横展開を疑う。
4624 に 192.0.2.45 から adm-sato でネットワークログオンしたことが記録されており,認証を経たアクセスである。ADMIN$ は管理者権限が必要な管理共有なので,管理者権限をもつアカウントの資格情報を用いた操作と推測できる。
照合の根拠(7 件)
- ウ(正解)・ア(誤り): PsExec の実行では接続先に,SMB 経由の PSEXESVC.exe の作成,接続元からのネットワーク接続,遠隔実行されたコマンドが記録される(ログを記録した FS01 が接続先)
監査ポリシー・Sysmon: SMB経由でPSEXESVC.exeが作成・アクセスされたこと、接続元からネットワーク接続されたこと、リモート実行されたコマンド名及び引数の記録
JPCERT/CC ツール分析結果シート PsExec · ログから得られる情報 > 追加設定 > 接続先(新しいタブで開きます) - ウ(正解)・ア(誤り)・エ(誤り): 接続先の 4624 はログオンタイプ 3 で,ソース ネットワーク アドレスは接続元の IP アドレス。192.0.2.45 が接続元で,正常にログオン(認証)している
新しいログオン > アカウント名 : [ドメイン名] ログオン情報 > ログオン タイプ : 3 ネットワーク情報 > ソースワークステーション名 : [接続元ホスト名] ネットワーク情報 > ソース ネットワーク アドレス : [接続元IPアドレス]
JPCERT/CC ツール分析結果シート PsExec · 詳細情報 > 接続先 > イベントログ 6(Security 4624)(新しいタブで開きます) - ウ(正解): 接続先の 5145 に ADMIN$ への PSEXESVC.exe の書込み(同項目のアクセスに WriteData を含む)が記録される
共有情報 > 共有名 : \\*\ADMIN$ 共有情報 > 共有パス : \??\C:\WINDOWS 共有情報 > 相対ターゲット名 : PSEXESVC.exe
JPCERT/CC ツール分析結果シート PsExec · 実行時に記録される主要な情報 > 接続先 4(Security 5145)(新しいタブで開きます) - ウ(正解): 接続先の 7045 に PSEXESVC サービスのインストールが記録される
サービスがシステムにインストールされました。 サービス名 : PSEXESVC サービス ファイル名 : %SystemRoot\PSEXESVC.exe
JPCERT/CC ツール分析結果シート PsExec · 実行時に記録される主要な情報 > 接続先 26(System 7045)(新しいタブで開きます) - ウ(正解)・イ(誤り): 遠隔実行されたコマンドの 4688 では作成元プロセス名が PSEXESVC.exe になる
プロセス情報 > 新しいプロセス名 : [リモート実行対象コマンドのパス] プロセス情報 > トークン昇格の種類 : TokenElevationTypeDefault(1) プロセス情報 > プロセスのコマンド ライン : [リモート実行対象のコマンド] プロセス情報 > 作成元プロセス ID : [実行プロセスID] プロセス情報 > 作成元プロセス名 : C:\Windows\PSEXESVC.exe
JPCERT/CC ツール分析結果シート PsExec · 実行時に記録される主要な情報 > 接続先 24(Security 4688)(新しいタブで開きます) - ウ(正解): PsExec はサービスコントロールマネージャで一時的なサービスを作り,遠隔でコマンドを実行できる
PsExec can also be used to execute commands or payloads via a temporary Windows service created through the service control manager API. [2] Tools such as PsExec and sc.exe can accept remote servers as arguments and may be used to conduct remote execution.
MITRE ATT&CK T1569.002 · Description(新しいタブで開きます) - ウ(正解)・エ(誤り): ADMIN$ などの隠し共有は管理者だけがアクセスでき,管理者の資格情報を使った操作と推測できる
Windows systems have hidden network shares that are accessible only to administrators and provide the ability for remote file copy and other administrative functions.
MITRE ATT&CK T1021.002 · Description(新しいタブで開きます)
ログの日本語の項目名(ログオン タイプ,ソース ネットワーク アドレス,共有名,相対ターゲット名,サービス名,サービス ファイル名,新しいプロセス名,作成元プロセス名)はすべて JPCERT/CC の日本語シートの記録例に原文どおりある(シートの 7045 は %SystemRoot\ と表記)。JPCERT/CC の mstsc シート(https://raw.githubusercontent.com/JPCERTCC/ToolAnalysisResultSheet_jp/master/docs/details/mstsc.htm)では RDP(NLA)でも接続先に 4624 タイプ 3 が記録されているため,イの解説を「タイプ 3 だから RDP ではない」から「作成元が PSEXESVC.exe で,直前の ADMIN$ 書込みと 7045 からサービス経由の遠隔実行と分かる」に改めた(RDP のログオンがタイプ 10 である点は MITRE CAR-2016-04-005 で確認したが,解説の根拠には使わない)。