Skip to main content

Search syntax

The ELLIO Threat Intelligence search bar accepts both bare IPs and structured queries. The query language is Lucene-flavoured: field: value pairs, combined with boolean operators, parentheses, and wildcards.

Operators

OperatorMeaningExample
:equalsclassification: "malicious"
!:not equalsclassification!: "benign"
ANDboth must matchtag: "Shodan" AND src.geo.country.code: "US"
OReither must matchclassification: "malicious" OR classification: "promiscuous"
( )group expressions(classification: "malicious" OR classification: "promiscuous") AND spoofable: false
*wildcard (zero or more characters)rdns: "*.censys-scanner.com"
?single-character wildcardhttp.path: "/admin?"
"..."exact string with spaces or special characterstag: "Fast Scanner (i.e. Masscan / ZMap)"

Always quote string values that contain spaces, special characters, or slashes. Numeric and enum values can be unquoted.

Field reference

29 fields, organised the way the dashboard organises them.

Core (4)

FieldDescriptionExample values
ipThe IP being searched66.240.219.146, 198.51.100.0/24
rdnsReverse DNS hostname"*censys*", "scanner-202.hk2.censys-scanner.com", "scanner-*.*.censys-scanner.com"
classificationThreat classificationmalicious, benign, promiscuous, unknown
spoofableWhether the source IP could be spoofed (no TCP handshake)true, false

HTTP (2)

FieldDescriptionExample values
http.pathPaths the IP requested"/.env", "/admin", "/wp-admin", "/api/*"
http.user_agentUser-Agent strings the IP presented"*bot*", "curl*", "Mozilla*", "*scanner*"

SSH (2)

FieldDescriptionExample values
ssh.auth.usernameSSH usernames attempted"admin", "root", "user", "*test*"
ssh.auth.passwordSSH passwords attempted"123456", "password", "admin", "*root*"

Fingerprints (3)

FieldDescriptionExample values
fingerprints.muonfpMuonFP TCP-stack fingerprint"29200:2-4-8-1-3:1400:7", "1024:2:1400:", "65535:*:*:*"
fingerprints.ja4JA4 TLS fingerprint"t13i190800_9dc949149365_97f8aa674fd9", "*_9dc949149365_e7c285222651"
fingerprints.ja3JA3 TLS client fingerprint"ec99bcb2c1e021d8ccd7e9012ea285e9", "48eb9b1182293f55c0710654b7b12fc6"

Intelligence (5)

FieldDescriptionExample values
tagHuman-readable tag"Apache Path Traversal", "Fast Scanner (i.e. Masscan / ZMap)", "TP-Link Archer AX21 (AX1800) vulnerability exploit"
tag_idProgrammatic tag identifier"adminer_detector", "apache_path_traversal"
mitre_attack.techniquesATT&CK technique IDs"T1595", "T1082", "T1190", "T1213"
mitre_attack.tacticsATT&CK tactic IDs"TA0043", "TA0007", "TA0001", "TA0009"
mitre_attack.sub_techniquesATT&CK sub-technique IDs"T1595.001", "T1552.001", "T1505.003", "T1071.001"

Network (5)

FieldDescriptionExample values
network.portAny observed port (spoofable or not)443, 80, 22, 3389
network.non_spoofable_portPorts with confirmed TCP handshake443, 80, 22
network.spoofable_portPorts without confirmed TCP handshake53, 123, 161
src.asn.numberSource ASN15169, 8075, 13335
src.asn.nameSource ASN organisation"AS13335 CLOUDFLARENET", "*Stark*", "*Techoff*"

Geolocation (8)

FieldDescriptionExample values
src.geo.country.codeSource country (ISO 3166-1 alpha-2)"US", "CN", "RU", "GB"
src.geo.country.nameSource country name"United States", "China", "Russian Federation"
src.geo.continent.codeSource continent code"NA", "AS", "EU", "AF"
src.geo.continent.nameSource continent name"North America", "Asia", "Europe"
dst.geo.country.codeDestination country (where the IP targeted)"US", "RU", "GB"
dst.geo.country.nameDestination country name"United States", "China", "Russian Federation"
dst.geo.continent.codeDestination continent code"NA", "AS", "EU", "AF"
dst.geo.continent.nameDestination continent name"North America", "Asia", "Europe"

Recipes

Useful combinations to copy-paste into the search bar.

Mass scanners from China or Russia

(src.geo.country.code: "RU" OR src.geo.country.code: "CN") AND tag: "Fast Scanner (i.e. Masscan / ZMap)"

High-confidence indicators only

Always filter spoofable sources out of automated decision-making:

classification: "malicious" AND spoofable: false

IPs targeting Palo Alto GlobalProtect

tag: "Palo Alto GlobalProtect Scanner" AND spoofable: false

IPs exploiting a specific CVE

The dashboard surfaces CVEs on the IP detail page. To find every IP exploiting a given CVE, search by the matching tag - for example:

tag: "Apache Path Traversal"

Scanners by attribution

tag: "Academy for Internet Research" OR tag: "Shodan"

Filter by reverse DNS pattern

rdns: "*.censys-scanner.com"

Filter by HTTP path probe

http.path: "/.env" OR http.path: "/.git/config"

Filter by SSH credential attempt

ssh.auth.username: "root" AND ssh.auth.password: "*"

Filter by JA4 fingerprint

fingerprints.ja4: "t13d1516h2_8daaf6152771_02713d6af862"

Cross-region reconnaissance

IPs in one continent that targeted ELLIO sensors in another:

src.geo.continent.code: "AS" AND dst.geo.continent.code: "NA"

Tips

  • Quote anything with spaces or special characters. Tag names, ASN names, RDNS hostnames, HTTP paths, and SSH credentials almost always need quotes.
  • Use wildcards to match families. rdns: "*.censys-scanner.com" catches every Censys scanner host. tag: "*Scanner*" catches every scanner tag.
  • Group with parentheses before joining with AND. Mixing OR and AND without parentheses leads to ambiguous parsing.
  • Add spoofable: false to anything you intend to feed into a blocklist or alerting pipeline - spoofable observations can come from a forged source.

What's next

  • IP detail page - every field you saw in this reference, rendered for a single IP.
  • Tags - the canonical list of values for the tag field.
  • CTI API - programmatic per-IP lookup (single, extended, bulk). The CTI API takes IPs, not search-syntax queries; this reference is for the dashboard search bar.