top of page
Search

Querying Like a Pro in Arkime: Getting the Most Out of Arkime Viewer: Beyond the Basics

  • 1 day ago
  • 5 min read

If you’ve started using Arkime (formerly Moloch), you already know it's a powerful tool for digging deep into packet captures and indexed network traffic.

But here's the deal — most of that power lives in how you search.

And trust me, once you get comfortable with Arkime's search language, it feels less like digging through data and more like interrogating the network. 🕵️‍♀️


----------------------------------------------------------------------------------------------------------

🧠 First: What Are We Even Searching?

In Arkime, you’re not just searching raw packets like in Wireshark. You're querying SPI data — Session Profile Information. It's metadata extracted from full PCAP captures that’s been indexed for fast retrieval. This means you’re asking questions like:


  • “Which sessions involved DNS lookups for ‘google’?”

  • “Did anyone POST data to a shady site?”

  • “Who used TLS but without Diffie-Hellman?”


You use Arkime's query bar in the viewer UI — and it’s actually pretty user-friendly.

----------------------------------------------------------------------------------------------------------


✨ Query Language 101 (Way Simpler Than It Looks)

Arkime has its own mini search language. Don’t worry, it’s not too weird. Here’s how it works:

Task

Syntax

AND

&&

OR

`

Equals

==

Not equals

!=

Exists

== EXISTS!

Group logic

( ... )

Example:

host.dns == *google* && http.method == POST

This finds DNS sessions with “google” in the hostname AND HTTP POST requests — maybe signs of data exfiltration?



----------------------------------------------------------------------------------------------------------

🔍 Let's Talk Field Types (Because This Changes How You Search)

Arkime fields come in different types — and you search each a little differently.


🧾 String Fields

These are your domains, URIs, methods, headers, etc.

  • Tokenized: Arkime breaks strings up by dots, slashes, and dashes.

    • So www.cyberengage.org/becomes: www, cyberengage, org, and www.cyberengage.org


  • Wildcards:

    • * = any characters

    • ? = single character→ http.uri == "www.cyberengage.*" matches .org, .edu, .com, etc.


  • Lists:

    • Want OR logic quickly? Use brackets:

    http.uri == [login, reset, password]


  • Regex:

    • Use /regex/ style for advanced pattern matching

    host.http == /.*\cyberengage\.com/


🌐 IP Address Fields

You can match by:


  • Exact IPs: ip.dst == 192.168.1.10

  • CIDR: ip.src == 10.0.0.0/8

  • With ports: ip.dst == 8.8.8.8:53



🔢 Numeric Fields

  • Standard comparisons work: >, <, >=, !=

src.port >= 10000

📅 Date Fields

Yes, you can time travel:

timestamp >= "2024-07-01 00:00:00"

Or go relative like:

timestamp >= now-24h

🦉 Helpful Stuff Built Right In

🧠 Autocomplete

Start typing host in the search bar and Arkime gives you suggestions like:

  • host.dns

  • host.http

  • host.tls

This is amazing when you’re not sure of the exact field name.



🦉 The Owl Button

Top-left corner of the interface = Arkime's Owl. Click it anytime to get quick help, field lists, and syntax reminders.


📈 The Viewer UI – It’s Not Just a Table

Each row in the interface = a session (not an individual packet). This is important. Arkime combines both sides of a conversation into one entry.

You’ll see:

  • Timestamps

  • Byte/packet counts

  • Protocols

  • Directional traffic graphs (red vs blue = client vs server)


You can:

  • Click the green plus sign to expand any session

  • Extract PCAPs of the session instantly

  • Switch views to show packets, bytes, or session summaries


And yes — you can zoom into a time range interactively just like in Wireshark!


🎯 Quick Query Examples (Copy-Paste Friendly)

  • Find all DNS requests containing “google”

host.dns == cyberengage
  • All POST requests to Home Depot domains

http.method == POST && host.http == cyberengage.org
  • TLS sessions that don’t use Diffie-Hellman

tls.cipher == EXISTS! && tls.cipher != DHE
  • Any session where a TLS certificate was present

cert.issuer.cn == EXISTS!
  • Match IP in range with port

ip.dst == 192.168.1.0/24:443

----------------------------------------------------------------------------------------------------------


So you’ve fired up Arkime, run a few basic searches, and pulled up some sessions. Cool. But now you’re thinking, “Okay, now what?”

Welcome to the real power of Arkime — the Viewer interface. This is where packet forensics turns visual, interactive, and actually fun.


🔓 “Unrolling” a Session — No More Packet-by-Packet Misery

Click that little green or blue “+” icon on any session row. Boom. You just “unrolled” the session.


Now you’re looking at:

  • All the SPI (Session Profile Information) fields Arkime extracted

  • A breakdown of client and server metadata

  • Easy-to-click fields that build your next search for you


This is Arkime’s secret sauce. You’re not parsing hex dumps or scrolling through TCP streams — you’re getting parsed, indexed, clickable context.


Want to filter all sessions that used the same HTTP User-Agent? Just click it. Want to pivot off a suspicious DNS request? Click it.

----------------------------------------------------------------------------------------------------------


📦 No PCAP Left Behind (Even If You Delete It)

One super cool feature: even if your original .pcap files get deleted or expire from disk, the SPI data stays. That means you can still search for sessions based on:

  • IPs

  • DNS names

  • TLS info

  • HTTP headers

  • And more…


…even if the raw packets are long gone. That's thanks to Elasticsearch, which is storing and indexing all that juicy metadata.


----------------------------------------------------------------------------------------------------------


🎨 Visual Packet Direction — Just Like Wireshark (But Better)

If the original PCAP is still available and not locked by permissions, Arkime shows you client-server packet flows using colors:


  • 🔵 Blue = client → server

  • 🔴 Red = server → client


This helps you see session direction at a glance — useful when you're dealing with command-and-control traffic, exfiltration, or handshake behaviors.


----------------------------------------------------------------------------------------------------------


🧪 Decode & Decompress — On the Fly

Did the response come back GZIP'd? No worries.

Arkime lets you uncompress responses directly in the browser — just click the “Uncompress” button.

Same goes for files and images:

  • Click “Show Images & Files”

  • Arkime will display images right inside the UI

  • Not an image? You’ll get a download link, but it forces a .pellet extension to keep things safe — no accidental malware clicks 👀


This makes Arkime way more analyst-friendly. No need to carve files manually — the UI helps surface artifacts you care about.


----------------------------------------------------------------------------------------------------------


🔗 “Connections” Tab — Visualize Relationships, Not Just Results

Here’s where Arkime gets fancy.

The Connections tab lets you build visual relationships between any two data points. You can pair:

  • ip.src with host.dns

  • ip.src with ip.dst

  • smb.user with smb.fn (username vs. accessed file)

  • Anything you want — as long as it's in the SPI


What you get is an interactive graph, showing:
  • Who talked to whom

  • How often

  • Which IPs resolved which domains

  • Which users accessed which files


You can hover to see session counts, bytes, packets... or even drag nodes to explore visually. It's like building your own mini threat intel map.


----------------------------------------------------------------------------------------------------------

🔍 The Hunt Tab — Search Inside Packets, Not Just Metadata

Most of Arkime’s power is in SPI — but sometimes, you need to dig deeper. That’s where Hunt comes in.

What is a “Hunt”?

It’s a background task that scans the actual packet data (raw PCAP) for matches, not just metadata.


Example use cases:

  • Searching inside payloads for malware signatures

  • Finding credentials

  • Looking for file fragments or strings


Hunt Options You Can Customize:

  • How many packets per session to search

  • Reassembly (streamed) or per-packet inspection

  • Direction (client→server, server→client, or both)

  • Match method (literal string, regex, etc.)


Once the hunt finishes:

  • It adds huntName and huntId to the session SPI

  • Even if the PCAP is deleted later, the match stays searchable!


💡 Bonus: You can save hunts and reuse them later — perfect for recurring analysis like APT TTPs, keyword searches, or IOC sweeps.

----------------------------------------------------------------------------------------------------------


🧰 Final Thoughts: Why This Matters

When you're dealing with mountains of network traffic, the difference between pain and productivity often comes down to how your tools surface data.


Arkime isn’t just capturing packets — it’s making them usable.

Once you learn the basic search syntax, Arkime becomes insanely powerful. You're no longer swimming in raw packets — you're running smart, targeted queries and extracting meaningful results fast.


-----------------------------------------------Dean------------------------------------------------------

 
 
 

Comentários


bottom of page