Detection rules › Sigma

Suspicious DNS Query for IP Lookup Service APIs

Status
test
Severity
medium
Log source
product windows, category dns_query
Author
Brandon George (blog post), Thomas Patzke
Source
github.com/SigmaHQ/sigma

Detects DNS queries for IP lookup services such as "api.ipify.org" originating from a non browser process.

MITRE ATT&CK coverage

TacticTechniques
ReconnaissanceT1590 Gather Victim Network Information

Event coverage

ProviderEventTitle
SysmonEvent ID 22DNSEvent (DNS query)

Rule body yaml

title: Suspicious DNS Query for IP Lookup Service APIs
id: ec82e2a5-81ea-4211-a1f8-37a0286df2c2
status: test
description: Detects DNS queries for IP lookup services such as "api.ipify.org" originating from a non browser process.
references:
    - https://www.binarydefense.com/analysis-of-hancitor-when-boring-begets-beacon
    - https://twitter.com/neonprimetime/status/1436376497980428318
    - https://www.trendmicro.com/en_us/research/23/e/managed-xdr-investigation-of-ducktail-in-trend-micro-vision-one.html
author: Brandon George (blog post), Thomas Patzke
date: 2021-07-08
modified: 2024-03-22
tags:
    - attack.reconnaissance
    - attack.t1590
logsource:
    product: windows
    category: dns_query
detection:
    selection:
        - QueryName:
              - 'www.ip.cn'
              - 'l2.io'
        - QueryName|contains:
              - 'api.2ip.ua'
              - 'api.bigdatacloud.net'
              - 'api.ipify.org'
              - 'bot.whatismyipaddress.com'
              - 'canireachthe.net'
              - 'checkip.amazonaws.com'
              - 'checkip.dyndns.org'
              - 'curlmyip.com'
              - 'db-ip.com'
              - 'edns.ip-api.com'
              - 'eth0.me'
              - 'freegeoip.app'
              - 'geoipy.com'
              - 'getip.pro'
              - 'icanhazip.com'
              - 'ident.me'
              - 'ifconfig.io'
              - 'ifconfig.me'
              - 'ip-api.com'
              - 'ip.360.cn'
              - 'ip.anysrc.net'
              - 'ip.taobao.com'
              - 'ip.tyk.nu'
              - 'ipaddressworld.com'
              - 'ipapi.co'
              - 'ipconfig.io'
              - 'ipecho.net'
              - 'ipinfo.io'
              - 'ipip.net'
              - 'ipof.in'
              - 'ipv4.icanhazip.com'
              - 'ipv4bot.whatismyipaddress.com'
              - 'ipv6-test.com'
              - 'ipwho.is'
              - 'jsonip.com'
              - 'myexternalip.com'
              - 'seeip.org'
              - 'wgetip.com'
              - 'whatismyip.akamai.com'
              - 'whois.pconline.com.cn'
              - 'wtfismyip.com'
    filter_optional_brave:
        Image|endswith: '\brave.exe'
    filter_optional_chrome:
        Image:
            - 'C:\Program Files\Google\Chrome\Application\chrome.exe'
            - 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
    filter_optional_firefox:
        Image:
            - 'C:\Program Files\Mozilla Firefox\firefox.exe'
            - 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
    filter_optional_ie:
        Image:
            - 'C:\Program Files (x86)\Internet Explorer\iexplore.exe'
            - 'C:\Program Files\Internet Explorer\iexplore.exe'
    filter_optional_maxthon:
        Image|endswith: '\maxthon.exe'
    filter_optional_edge_1:
        - Image|startswith: 'C:\Program Files (x86)\Microsoft\EdgeWebView\Application\'
        - Image|endswith: '\WindowsApps\MicrosoftEdge.exe'
        - Image:
              - 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
              - 'C:\Program Files\Microsoft\Edge\Application\msedge.exe'
    filter_optional_edge_2:
        Image|startswith:
            - 'C:\Program Files (x86)\Microsoft\EdgeCore\'
            - 'C:\Program Files\Microsoft\EdgeCore\'
        Image|endswith:
            - '\msedge.exe'
            - '\msedgewebview2.exe'
    filter_optional_opera:
        Image|endswith: '\opera.exe'
    filter_optional_safari:
        Image|endswith: '\safari.exe'
    filter_optional_seamonkey:
        Image|endswith: '\seamonkey.exe'
    filter_optional_vivaldi:
        Image|endswith: '\vivaldi.exe'
    filter_optional_whale:
        Image|endswith: '\whale.exe'
    condition: selection and not 1 of filter_optional_*
falsepositives:
    - Legitimate usage of IP lookup services such as ipify API
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_optional_*

Stage 1: selection

selection:
    - QueryName:
          - 'www.ip.cn'
          - 'l2.io'
    - QueryName|contains:
          - 'api.2ip.ua'
          - 'api.bigdatacloud.net'
          - 'api.ipify.org'
          - 'bot.whatismyipaddress.com'
          - 'canireachthe.net'
          - 'checkip.amazonaws.com'
          - 'checkip.dyndns.org'
          - 'curlmyip.com'
          - 'db-ip.com'
          - 'edns.ip-api.com'
          - 'eth0.me'
          - 'freegeoip.app'
          - 'geoipy.com'
          - 'getip.pro'
          - 'icanhazip.com'
          - 'ident.me'
          - 'ifconfig.io'
          - 'ifconfig.me'
          - 'ip-api.com'
          - 'ip.360.cn'
          - 'ip.anysrc.net'
          - 'ip.taobao.com'
          - 'ip.tyk.nu'
          - 'ipaddressworld.com'
          - 'ipapi.co'
          - 'ipconfig.io'
          - 'ipecho.net'
          - 'ipinfo.io'
          - 'ipip.net'
          - 'ipof.in'
          - 'ipv4.icanhazip.com'
          - 'ipv4bot.whatismyipaddress.com'
          - 'ipv6-test.com'
          - 'ipwho.is'
          - 'jsonip.com'
          - 'myexternalip.com'
          - 'seeip.org'
          - 'wgetip.com'
          - 'whatismyip.akamai.com'
          - 'whois.pconline.com.cn'
          - 'wtfismyip.com'

Stage 2: not filter_optional_*

filter_optional_brave:
    Image|endswith: '\brave.exe'
filter_optional_chrome:
    Image:
        - 'C:\Program Files\Google\Chrome\Application\chrome.exe'
        - 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
filter_optional_firefox:
    Image:
        - 'C:\Program Files\Mozilla Firefox\firefox.exe'
        - 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
filter_optional_ie:
    Image:
        - 'C:\Program Files (x86)\Internet Explorer\iexplore.exe'
        - 'C:\Program Files\Internet Explorer\iexplore.exe'
filter_optional_maxthon:
    Image|endswith: '\maxthon.exe'
filter_optional_edge_1:
    - Image|startswith: 'C:\Program Files (x86)\Microsoft\EdgeWebView\Application\'
    - Image|endswith: '\WindowsApps\MicrosoftEdge.exe'
    - Image:
          - 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
          - 'C:\Program Files\Microsoft\Edge\Application\msedge.exe'
filter_optional_edge_2:
    Image|startswith:
        - 'C:\Program Files (x86)\Microsoft\EdgeCore\'
        - 'C:\Program Files\Microsoft\EdgeCore\'
    Image|endswith:
        - '\msedge.exe'
        - '\msedgewebview2.exe'
filter_optional_opera:
    Image|endswith: '\opera.exe'
filter_optional_safari:
    Image|endswith: '\safari.exe'
filter_optional_seamonkey:
    Image|endswith: '\seamonkey.exe'
filter_optional_vivaldi:
    Image|endswith: '\vivaldi.exe'
filter_optional_whale:
    Image|endswith: '\whale.exe'

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
Imageends_with\msedge.exe
Imageends_with\msedgewebview2.exe
Imagestarts_withC:\Program Files (x86)\Microsoft\EdgeCore\
Imagestarts_withC:\Program Files\Microsoft\EdgeCore\
Imageends_with\WindowsApps\MicrosoftEdge.exe
Imageends_with\brave.exe
Imageends_with\maxthon.exe
Imageends_with\opera.exe
Imageends_with\safari.exe
Imageends_with\seamonkey.exe
Imageends_with\vivaldi.exe
Imageends_with\whale.exe
ImageeqC:\Program Files (x86)\Google\Chrome\Application\chrome.exe
ImageeqC:\Program Files (x86)\Internet Explorer\iexplore.exe
ImageeqC:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
ImageeqC:\Program Files (x86)\Mozilla Firefox\firefox.exe
ImageeqC:\Program Files\Google\Chrome\Application\chrome.exe
ImageeqC:\Program Files\Internet Explorer\iexplore.exe
ImageeqC:\Program Files\Microsoft\Edge\Application\msedge.exe
ImageeqC:\Program Files\Mozilla Firefox\firefox.exe
Imagestarts_withC:\Program Files (x86)\Microsoft\EdgeWebView\Application\

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
QueryNameeq
  • l2.io
  • www.ip.cn
QueryNamematch
  • api.2ip.ua
  • api.bigdatacloud.net
  • api.ipify.org
  • bot.whatismyipaddress.com
  • canireachthe.net
  • checkip.amazonaws.com
  • checkip.dyndns.org
  • curlmyip.com
  • db-ip.com
  • edns.ip-api.com
  • eth0.me
  • freegeoip.app
  • geoipy.com
  • getip.pro
  • icanhazip.com
  • ident.me
  • ifconfig.io
  • ifconfig.me
  • ip-api.com
  • ip.360.cn
  • ip.anysrc.net
  • ip.taobao.com
  • ip.tyk.nu
  • ipaddressworld.com
  • ipapi.co
  • ipconfig.io
  • ipecho.net
  • ipinfo.io
  • ipip.net
  • ipof.in
  • ipv4.icanhazip.com
  • ipv4bot.whatismyipaddress.com
  • ipv6-test.com
  • ipwho.is
  • jsonip.com
  • myexternalip.com
  • seeip.org
  • wgetip.com
  • whatismyip.akamai.com
  • whois.pconline.com.cn
  • wtfismyip.com