Skip to content
BONFIRE LIT
Go back

ホスト上で動いている EDR を特定する

目的: 当該ホストで動いている EDR / AV を、現在の手札の中で最も静かな方法で特定する。

Contents

TL;DR

EDR / AV プロセス早見表

プロセス製品
MsSense.exe / MsMpEng.exe / NisSrv.exe / SenseIR.exe / SenseCncProxy.exeMicrosoft Defender for Endpoint (MDE)
CSFalconService.exe / CSFalconContainer.exeCrowdStrike Falcon
SentinelAgent.exe / SentinelServiceHost.exe / SentinelHelperService.exeSentinelOne
minionhost.exe / PylumLoader.exe / CrsSvc.exe / CrAmTray.exeCybereason
ds_agent.exe / coreServiceShell.exe / ds_notifier.exeTrend Micro Deep Security
cyoptics.exe / CylanceSvc.exeBlackBerry Cylance
cyserver.exe / cytray.exe / CyveraService.exePalo Alto Cortex XDR (旧 Traps)
AvastSvc.exe / aswidsagent.exeAvast
avp.exe / avpui.exeKaspersky
ekrn.exe / egui.exeESET
mfemms.exe / mfevtps.exeMcAfee / Trellix
SSPService.exe / SEDService.exe / SophosFileScanner.exe / SavService.exeSophos
bdagent.exe / EPSecurityService.exeBitdefender
TmListen.exe / PccNTMon.exeTrend Micro Apex One
xagt.exeTrellix Endpoint Security HX
elastic-agent.exe / elastic-endpoint.exeElastic Defend
RepMgr.exe / RepUtils.exe / RepUx.exe / cb.exeVMware Carbon Black
ccSvcHst.exe / SepMasterService.exe / smc.exeSymantec Endpoint Protection
TaniumClient.exe / TaniumCX.exeTanium

判断フロー

  1. 資格情報 + SMB / WMI 到達性がある
    • レジストリ照会で対象サービスキーを確認
    • 必要に応じて WMI で対象プロセス名だけを照会
  2. コード実行セッションがある
    • Beacon なら ps / services
    • PowerShell なら Get-Process -Name ...
  3. 他に手段がない
    • tasklist / sc query を使う
    • ログが残る前提で実行する

前提条件

手段の使い分け

手段使いどころノイズ
Registry / SMB対象サービスキーが分かっている
Beacon ps / services既に Beacon セッションがある
WMI queryリモートから対象プロセスだけを照会したい中低
PowerShellセッション内で辞書照合したい
tasklist / sc他の手段が使えない

コマンド集

Registry / SMB: サービスキー照会

# impacket-reg 経由、対象サービスのキーだけ照会 (存在すれば EDR 導入確定)
impacket-reg 'DOMAIN/User:[email protected]' query \
  -keyName 'HKLM\\SYSTEM\\CurrentControlSet\\Services\\Sense'             # MDE
impacket-reg 'DOMAIN/User:[email protected]' query \
  -keyName 'HKLM\\SYSTEM\\CurrentControlSet\\Services\\CSFalconService'   # CrowdStrike
impacket-reg 'DOMAIN/User:[email protected]' query \
  -keyName 'HKLM\\SYSTEM\\CurrentControlSet\\Services\\SentinelAgent'     # SentinelOne

# netexec (旧 crackmapexec) の enum_av モジュール (内部で同種のキー照会)
nxc smb 10.0.0.5 -u user -p pass -M enum_av

# セッションがある場合は in-session でも同じキーを読める
reg query "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Sense" /v ImagePath

In-session: Beacon / PowerShell / cmd

Cobalt Strike Beacon

直接 syscall で NtQuerySystemInformation を叩くため、新規プロセス作成なし。cmd / PS 経由より静か。

ps
services

PowerShell

Get-Process -Name <list> で辞書にあるプロセスだけ確認。存在しなければ無出力でログも最小。ScriptBlock Logging (EID 4104) が有効だと内容が残るので、-Name で対象を絞って短くする。ただし、PowerShell 実行のためうるさい。

# 辞書にあるプロセスだけ確認 (存在しなければ無出力)
Get-Process -Name MsSense,CSFalconService,SentinelAgent,cyserver,xagt,elastic-endpoint -ErrorAction SilentlyContinue

# サービス視点 (EDR は常駐サービスを持つものが多い)
Get-Service | Where-Object { $_.PathName -match 'Sophos|Sentinel|Crowd|Cyber|Cortex|Falcon|xagt|elastic' }

全列挙が必要な場合のみ:

ps | Select-Object Name, Id, Path | Sort-Object Name

cmd / tasklist

tasklist.exe / sc.exe の起動が EID 4688 / Sysmon 1 で残る。Beacon や PS が使えない環境だけ。

tasklist /svc | findstr /I "Sense Falcon Sentinel Cylance Cortex Cybereason Sophos xagt elastic"
sc query | findstr /I "Sense Falcon Sentinel Cylance Cortex Cybereason Sophos xagt elastic"

WMI リモートクエリ

前提条件: 資格情報を持っている。

環境が未知で全列挙したい。クエリのみで Win32_Process::Create を呼ばないため検知ルールの大半を回避できるが、WmiPrvSE が起動する分、少しうるさい。

Linux / Impacket

# 対象を絞ったクエリを優先 (SELECT * は全件取るので避ける)
proxychains impacket-wmiquery 'DOMAIN/User:[email protected]' -namespace 'root\\cimv2' \
  -q "SELECT Name FROM Win32_Process WHERE Name = 'MsSense.exe'"

# 辞書一括チェック (1 コマンド内で済ませる)
for p in MsSense.exe CSFalconService.exe SentinelAgent.exe cyserver.exe xagt.exe elastic-endpoint.exe; do
  impacket-wmiquery 'DOMAIN/User:[email protected]' -namespace 'root\\cimv2' \
    -q "SELECT Name FROM Win32_Process WHERE Name = '$p'"
done

# どうしても全列挙が必要な場合だけ
impacket-wmiquery 'DOMAIN/User:[email protected]' -namespace 'root\\cimv2' \
  -q "SELECT Name FROM Win32_Process"

Windows / PowerShell

$cred = Get-Credential
Get-WmiObject -ComputerName 10.0.0.5 -Credential $cred -Query "SELECT * FROM Win32_Process WHERE Name = 'MsSense.exe'"

避ける: wmic /node:...

Win11 で廃止。in-session で使うと wmic.exe + WmiPrvSE.exe 両方起動で最もうるさい。Get-Processimpacket-wmiquery を優先。


OPSEC / 注意

共通

Registry / SMB

プロセス列挙 (in-session)

WMI

検知

共通

Registry / SMB

プロセス列挙 (in-session)

WMI


背景 / リファレンス

参考



Next Post
Pass the Hash と NTLM 認証の流れ