Getting started

Download our Free View official cheat sheet

Starting straight away with standard filters

If you just want to try out and have some quick results, you may want to search for all exposed RDP services, for instance. It is as easy as using a unique filter:

From the Web search engine:

protocol:rdp

From curl:

curl -H 'Content-Type: application/json' -H 'Authorization: bearer YOUR_APIKEY' -XGET 'https://www.onyphe.io/api/v2/search/?q=protocol:rdp'

Or you want to find exposed SSH services? We find all these services by performing protocol identification. Yes, you can find services on non-standard port in the way:

protocol:ssh

Want to search all Windows operating systems? Easy:

os:windows

You can even directly search for a specific domain:

domain:google.com

We have tens of usable filters. Basically, all those available in the JSON output can be used as a search filter. This includes, of course, search by country or by asn… What is more, you can multiply your filters to form a AND query:

domain:google.com protocol:ssh

NOTE: use the following curl request to execute this last search.

curl -H 'Content-Type: application/json' -H 'Authorization: bearer YOUR_APIKEY' -XGET 'https://www.onyphe.io/api/v2/search/?q=domain:google.com+protocol:ssh'

Search using keywords

As we store 16KB of raw data in the data field, you can apply some keyword searches. Let’s try with some classic string:

data:“hello world”

By default, fields only accept exact searches, like the example fields given in previous section. For the following list, you can search by using keywords or complete phrases with the following fields:


And that’s pretty much all for keywords based fields. Keep in mind, if a field is not listed here, it can only be used for exact searches.

Examples:


data:confidential


data:“do not disclose”


data:confidential data:“do not disclose”

NOTE: this search performs an AND query. It will find matching documents that have the ‘confidential’ keyword somewhere in the data field AND also the ‘do not disclose’ phrase somewhere in the data field. You can perform OR queries starting from subscriptions allowing ‘Advanced query language’.

Defining an asset

We work with the concept of asset. Usually, an organization is comprised of multiple assets. An asset can:


An IP address can be searched for with the ip filter:

ip:8.8.8.8

An IP block can be searched for also with the ip filter but with a CIDR mask:

ip:8.8.8.0/24

A domain name can be searched for with the domain filter:

domain:google.com

A subdomain name can be searched for with the subdomains filter:

subdomains:sandbox.googleusercontent.com

An organization can be searched for with the organization filter:

organization:google

NOTE: search terms are NOT case sensitive.

A top-level domain can be searched for with the tld filter:

tld:google

Defining a pivot

The previous use case was to search for specific assets. Maybe you want to find linked assets? For instance, a company usually have multiple domain names. What if you could pivot on some field to identify related domains? Pivots are just some other filters you can use:


To search for related domains starting from subject.organization filter:

subject.organization:google

To search for linked domains, just look at the output for the domain fields:

{
   "domain": [
      "1e100.net",
      "bg-call-donation-alpha.goog",
      "bg-call-donation-canary.goog",
      "bg-call-donation-dev.goog",
      "bg-call-donation.goog",
      "google.com",
      "googleapis.com",
      "youtube-3rd-party.com",
      "youtube.com"
   ]
}

NOTE: you guessed it, we collect so much data we can easily create an asset inventory based on these pivots.

To search for HTTP trackers, you have different available filters:

Defining an analytics

An analytics allows to search for similarities in our data. For instance, a common use case is to find devices having the same favicon. You can use the app.favicon.imagemd5 or app.favicon.imagemmh3 filters for that. We have other analytics fields as follows:


We also support the MMH3 algorithm for all these fields, just replace MD5 by MMH3:


NOTE: MMH3 is on 32-bits only. Thus, this algorithm may have numerous collisions and is not recommanded for big data.

Improving your search skills

Now that you have the basics to get started, you should continue to improve your knowlege by reading the ONYPHE Query Language chapter.