Purpose: Monitor for the execution of tools designed to extract credentials from web browsers.
Detect Access to LSA Secrets
DeviceProcessEvents | where ProcessCommandLine has "secretsdump.py" | project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessAccountName
Purpose: Identify attempts to dump LSA secrets using tools like secretsdump.py.
Monitor for PowerShell Credential Dumping Commands
DeviceProcessEvents | where ProcessCommandLine has "powershell" and ProcessCommandLine has_any ("Get-Credential", "Export-Credential") | project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessAccountName
Purpose: Detect PowerShell commands attempting to dump or export credentials.
Identify Suspicious Access to Keychain on macOS (if applicable)
DeviceProcessEvents | where ProcessCommandLine has "security find-generic-password" | project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessAccountName
Purpose: Monitor for suspicious access to the macOS Keychain, which stores user credentials.
Detect Access to Saved Passwords in Web Browsers
DeviceFileEvents | where FolderPath has_any ("\\AppData\\Local\\Google\\Chrome\\User Data", "\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles") and FileOperation == "Read" | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Identify attempts to access files associated with saved passwords in web browsers.
Monitor for Unusual Access to DPAPI Master Keys
DeviceFileEvents | where FolderPath has "C:\\Users\\%USERNAME%\\AppData\\Roaming\\Microsoft\\Protect" and FileOperation == "Read" | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Detect access to DPAPI (Data Protection API) master keys, which are used to protect stored credentials.
Identify Access to Password-Protected Archives
DeviceFileEvents | where FileExtension in (".zip", ".rar", ".7z") and ProcessCommandLine has "password" | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Monitor for attempts to access or extract credentials from password-protected archives.
Detect Access to Credential Files in Remote Desktop Clients
DeviceFileEvents | where FolderPath has "C:\\Users\\%USERNAME%\\AppData\\Local\\Microsoft\\Remote Desktop" and FileOperation == "Read" | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Identify access to credential files stored by Remote Desktop clients.
4. T1552 - Unsecured Credentials
Objective: Detect attempts to locate or use unsecured credentials, such as plaintext passwords or keys, stored in files or environment variables.
Detect Access to Plaintext Credential Files
DeviceFileEvents | where FileExtension in (".txt", ".log", ".conf", ".ini") and FileName has_any ("password", "credentials", "creds") | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Identify access to files that may contain plaintext credentials.
Monitor for Environment Variables Containing Credentials
Purpose: Identify attempts to clone or reprovision devices used for generating 2FA codes.
6. T1528 - Steal Application Access Token
Objective: Detect attempts to steal or use application access tokens to gain unauthorized access to resources.
Detect Unusual Access to OAuth Tokens
DeviceFileEvents | where FileName contains "oauth" and FileOperation == "Read" | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Identify attempts to access OAuth tokens stored on the system.
Monitor for Use of Stolen Access Tokens
DeviceNetworkEvents | where RemoteUrl has_any ("token", "access_token") and RequestMethod == "POST" | project Timestamp, DeviceName, RemoteUrl, InitiatingProcessAccountName
Purpose: Detect the use of stolen access tokens to authenticate API requests.
Identify Access to Web Browser Session Tokens
DeviceFileEvents | where FolderPath has_any ("\\AppData\\Local\\Google\\Chrome\\User Data", "\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles") and FileName contains "session" | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Monitor for access to files containing web browser session tokens.
Detect Token Injection Attempts
DeviceProcessEvents | where ProcessCommandLine has "Invoke-RestMethod" and ProcessCommandLine has "Authorization: Bearer" | project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessAccountName
Purpose: Identify attempts to inject stolen tokens into API requests.
Monitor for Access Token Replay Attacks
DeviceNetworkEvents | where RemoteUrl has "api" and RequestHeaders contains "Authorization: Bearer" | project Timestamp, DeviceName, RemoteUrl, RequestHeaders, InitiatingProcessAccountName
Purpose: Detect replay of stolen access tokens in API requests.
Identify Unusual Use of JWT Tokens
DeviceProcessEvents | where ProcessCommandLine has "jwt" | project Timestamp, DeviceName, ProcessCommandLine, InitiatingProcessAccountName
Purpose: Monitor for suspicious usage of JWT (JSON Web Tokens) which might indicate token theft.
Detect Unauthorized Access to Cloud Provider Tokens
DeviceFileEvents | where FileName has_any ("gcloud", "aws", "azure") and FileOperation == "Read" | project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessAccountName
Purpose: Identify unauthorized access to cloud provider tokens stored on the system.