This hypothesis targets the execution of the Amos banking trojan, which typically initiates via malicious URLs delivered through phishing or compromised web pages to establish a foothold in the environment. Proactively hunting for these specific indicators in Azure Sentinel allows the SOC to identify compromised endpoints early, preventing the trojan from deploying its keylogger and stealing sensitive financial or corporate credentials.
Threat: Amos Total URLs: 3 Active URLs: 0
| URL | Status | Threat | Date Added |
|---|---|---|---|
hxxps://genovaw.com/loader/agent/001e07c934e19b9d10f621c6b7546b43b2fb1c7b8fce2625fc7b767dfb626336 | offline | malware_download | 2026-09-18 |
hxxps://genovaw.com/curl/001e07c934e19b9d10f621c6b7546b43b2fb1c7b8fce2625fc7b767dfb626336 | offline | malware_download | 2026-09-18 |
hxxps://implantdentistrytx.com/curl/b54cc90c9143f757e0ac59356414f14447d5f9cbbae0b0e61cf6b4e8ced28f42 | offline | malware_download | 2026-09-18 |
// Hunt for DNS resolution of URLhaus malicious domains
// Threat: Amos
let malicious_domains = dynamic(["genovaw.com", "implantdentistrytx.com"]);
DnsEvents
| where Name has_any (malicious_domains)
| project TimeGenerated, Computer, Name, IPAddresses
| order by TimeGenerated desc
// Hunt for web traffic to URLhaus malicious domains
let malicious_domains = dynamic(["genovaw.com", "implantdentistrytx.com"]);
CommonSecurityLog
| where RequestURL has_any (malicious_domains) or DestinationHostName has_any (malicious_domains)
| project TimeGenerated, SourceIP, RequestURL, DestinationHostName, DeviceAction
| order by TimeGenerated desc
| Sentinel Table | Notes |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DnsEvents | Ensure this data connector is enabled |
Scenario: A security operations team or CI/CD pipeline uses curl or wget to verify the availability or integrity of known malicious endpoints (e.g., http://185.154.197.108/amos) during a threat hunt or post-incident validation.
curl.exe, wget.exe, or powershell.exe if the command line contains specific verification flags (e.g., -I, --head) or if the source IP belongs to the SOC jump server subnet.Scenario: An automated backup or log ingestion job (e.g., using rsync or a custom Python script) pulls remote configuration files or threat intelligence feeds from a staging server that mirrors URLhaus data, inadvertently accessing the Amos-tagged URLs as part of a bulk download.
svc-backup, svc-log-ingest) and the destination path contains keywords like /backups/, /logs/, or /threat-intel/.Scenario: A developer or QA engineer runs a local web server (e.g., nginx, apache, or python -m http.server) to test client-side JavaScript or API integrations, and the test environment includes a mock endpoint that resolves to one of the Amos IPs for load testing or proxy configuration validation.
nginx.exe, httpd.exe, python.exe with http.server in the command line).Scenario: A network monitoring tool (e