HackBlue

Tools · Wireshark · 03 / 30

Columns and profiles

A profile is your lens: extra columns for the fields you keep reopening, stored beside the file rather than inside it.

10 min read · practice only with authorization

Add the field you keep clicking

The default columns are a reasonable start and a poor fit for a single question. If you are reading window sizes, add the calculated window as a column. If you are reading names, add the DNS query name or the TLS server name. Right-click the field in the details tree and choose Apply as Column. The list grows a column, and you can sort and scan.

A column is a view of a field. It is empty on frames where the field is absent, which is itself useful: a tls.handshake.extensions_server_name column stays blank on pure ACK packets and fills in on Client Hellos. You scroll the handshake rows without opening each one.

Keep a lab profile

Profiles store columns, coloring rules, and many protocol preferences. Edit, then Configuration Profiles, and copy the default into one named for the lab. Switch back to the default when you open a file for a different job, so a DNS-heavy layout does not hide what you need for a TCP job.

The profile lives in your Wireshark configuration, not in the pcapng. A teammate who opens the same file sees their profile. If a column was essential to the finding, say the field name in the note. The field is in the file. The column was your shortcut to it.

Worked case: a layout for the lab web host

You are about to read a morning capture of 10.8.0.20, the lab web server. The questions you expect are “who opened TCP,” “what name did TLS ask for,” and “did the window close.” Make a profile called lab-web. Add columns for tcp.stream, tcp.window_size, and tls.handshake.extensions_server_name. Leave the default columns in place so the time and the addresses stay put. When the stream column shows 7 on the session you care about, tcp.stream == 7 is the filter that keeps only that session.

Sort is a trap worth knowing. Sorting by a column reorders the list on screen, and time order is what a handshake depends on. When the story is a sequence, sort by the packet number or the time column again before you follow a stream. The file’s order has not changed. The view has.

Snippet
tcp.stream == 7
  • tcp.stream, so one conversation shares a number.
  • tcp.window_size, the scaled window.
  • tls.handshake.extensions_server_name, blank except on Client Hellos.

What travels with the evidence

Hand over the pcapng, the capture-point note, and the display filters you used. A profile export is a courtesy if you want someone to see the same columns, and it is optional. Findings that only exist as a column arrangement will not survive the handoff.

Protocol preferences can change a decode. Relative sequence numbers, TCP reassembly, and name resolution are the ones that most often change what a second person sees. If you changed one while reading the lab file, write that down next to the profile name.

Diagram

From a field you keep opening to a column in a named profile

  1. Field

    Find the field in one frame. Confirm the name in the status bar.

  2. Column

    Apply it as a column so every row can show that value.

  3. Profile

    Save the layout under a lab profile. The default profile stays untouched.

  4. Note

    Quote the field in the write-up. The column does not travel inside the pcapng.

    One stream, after the column shows the index
    tcp.stream == 7

Check yourself

1. You keep expanding TCP to read the stream index. What is the durable shortcut?

2. A teammate opens the same pcapng and does not see your extra columns. Why?

3. You sorted the list by source address and the handshake now reads backwards. What restores the sequence?