Jasper Alblas
Jasper Alblas
Welcome to this walkthrough of the Wireshark: Packet Operations Room on TryHackMe. In this room we will cover advanced features of the Wireshark by focusing on packet-level details with Wireshark statistics, filters, operators and functions. Be sure to checkout the walkthrough on the previous Wireshark room: TryHackMe: Wireshark: The Basics (SOC Level 1)
Room URL:
https://tryhackme.com/room/wiresharkpacketoperations
I am making these walkthroughs to keep myself motivated to learn cyber security, and ensure that I remember the knowledge gained by these challenges on HTB and THM. Join me on learning cyber security. I will try and explain concepts as I go, to differentiate myself from other walkthroughs.
Now, let’s move on!
In this room, we will cover the fundamentals of packet analysis with Wireshark and investigate the event of interest at the packet-level. Note that this is the second room of the Wireshark room trio, and it is suggested to visit the first room (Wireshark: The Basics) to practice and refresh your Wireshark skills before starting this one.
In the first room, we covered the basics of the Wireshark by focusing on how it operates and how to use it to investigate traffic captures. In this room, we will cover advanced features of the Wireshark by focusing on packet-level details with Wireshark statistics, filters, operators and functions.
Answer: No answer needed
The summary menu provides an overview of network traffic, protocols, endpoints, and conversations to help analysts form investigative hypotheses. Here are some of the functionality found in this menu:
Go into Statistics -> Resolved Addresses:
A window will show up with a list of addresses (both IP and MAC) and the hostnames they resolve to.
Search for bbc and you will find the answer: 199.232.24.81.
Answer: 199.232.24.81
Conversation represents traffic between two specific endpoints. To see an overview over all conversations go to Statistics -> Conversations.
You can see the answer in the top, on the second tab.
Answer:435
This time it is time to look at the Endpoints window, by going at Statistics -> Endpoints.
While you could first to to Resolved Addresses to find the MAC address corresponding to the Micro-St manufacturer, the easier way is to check Name resolution in the Endpoints window, as shown below.
Find the correct Address, and find the answer in column 3.
Answer: 7474
Stay inside the Endpoints window, but go inside the IPv4 overview tab. Here you will see a column called City. Simply press on it to order by city name:
Scroll down and you will find 4 entries from Kansas City.
Answer: 4
Once again, we can stay into the Endpoints window. There is another field called AS Organization. As before, click on the column title to sort. Find Blicnet and note that there is only one entry,
On that row you will also find the IP address: 188.246.82.7.
Answer: 188.246.82.7
Wireshark has some additional features which gives us the option to narrow the types of protocols which the statistics relate to:
To the IPv4 statistics, we need to go to Statistics -> IPv4 Statistics -> Destinations and Ports.
In this window you can filter on the Count Column, and the IP address on the top (you might have to click twice) will have the highest count (29387).
PS: I found out you can get the same information from the Source and Destination Addresses window, also found under Statistics -> IPv4 Statistics.
Answer:10.100.1.33
Go to Statistics -> DNS. Then find the correct Topic, request-response time (secs) underneath Service Stats.
Finally, look for the Max val column.
Answer: 0.467897
I guess you know where to go now. Go to Statistics -> HTTP -> Load Distribution.
Sort by the Topic / Item, and you should be able to find rad.msn.com.
The answer is 24 +15, you can figure it out..
Answer: 39
Wireshark uses two types of filters for packet analysis:
Capture Filters – Applied before capturing traffic, these filters save only specific packets and cannot be changed during capture. They use byte offsets, hex values, and boolean operators (e.g., tcp port 80
). Only experienced users should rely on them, as incorrect filters can miss critical data.
Display Filters – Used to refine visible packets after capture, these filters support 3000+ protocols and allow detailed packet inspection. They can be changed dynamically (e.g., tcp.port == 80
).
Answer: No answer needed
Wireshark supports 3,000 protocols and enables packet-level investigation using filters. These filters help analysts isolate relevant traffic based on different protocol layers:
IP filters help analyze traffic based on network-level information like IP addresses, TTL, flags, and checksums. Common filters:
Note: ip.addr filters both directions, while ip.src and ip.dst filter based on traffic direction.
These filters analyze transport protocol data such as ports, sequence numbers, window size, and flags.
Filters traffic based on application protocols such as HTTP and DNS.
Wireshark provides a Display Filter Expression menu (Analyze → Display Filter Expression) to help users create filters without memorizing protocol structures. This menu shows all protocol fields, accepted values, and predefined options, aiding in filter creation.
Wireshark allows users to highlight filtered packets using Coloring Rules (View → Coloring Rules). This helps in visually distinguishing filtered traffic.
Mastering Wireshark filters takes time and practice, but using the Display Filter Expression tool simplifies the process.
This one is simple. You simply have to write the following display filter:
ip
That’s it 🙂 This shows all IP packets, and removes everything else from the list.
Answer:81420
You can write the following filter expression:
ip.ttl < 10
PS: If you are unsure on which display filter to use you can look at the Analyse –> Display Filter Expression menu. You can look around there for all the possible fields, and you can even search for properties!
Answer: 66
Another easy one. Simply use the following filter:
tcp.port == 4444
This shows all packets which uses TCP port 4444, either as source or destination port.
Answer: 632
This is fun!
The request header is part of the application-level protocol filters, while the port is part of the transport layer (and therefore exists on IP).
You can create the display filter like so:
http.request.method == "GET" and tcp.dstport == 80
Remember to use the destination port filter this time.
Answer: 527
This is the toughest one so far. In the theory we learned how to filter on DNS ‘A’ records
dns.qry.type == 1
But this is not enough, since they are interested in queries, which means we have to remove all responses. We do this with the dns.flags.response == 0 filter. In total it should look like this:
dns.qry.type == 1 and dns.flags.response == 1
DNS A record queriesAnswer: 51
This task covers some of the more advanced filter possibilities. I will cover them shortly here:
http.server contains "Apache"
will list all HTTP packets where the “server” field includes “Apache”.http.host matches "\.(php|html)"
will find HTTP packets where the “host” field matches “.php” or “.html”.tcp.port in {80 443 8080}
will find TCP packets with port values 80, 443, or 8080.upper(http.server) contains "APACHE"
converts the “server” field to uppercase and checks for the “APACHE” keyword.lower(http.server) contains "apache"
converts the “server” field to lowercase and looks for “apache”.string(frame.number) matches "[13579]$"
converts frame numbers into strings and matches odd-numbered frames.Bookmarks and Buttons: Wireshark allows you to save custom filters as bookmarks or create buttons for quick access, which helps analysts efficiently apply complex or frequently used filters.
Profiles: Wireshark supports creating multiple profiles, each with a customized set of configurations (e.g., coloring rules, filtering buttons) for different investigation scenarios, making it easier to switch between setups without reconfiguring each time.
We have to use the contains operator here to filter for IIS in the http.server values. In addition we should filter out all tcp.srcports that are 80.
I found out that there are two ways to do this:
http.server contains "IIS" and tcp.srcport != 80
But even better:
http.server contains "IIS" and !tcp.srcport == 80
I am not completely sure why the first filter gave me a warning, but the second one didn’t. Both give the same result (21) though.
IIS packets not coming from port 80
Answer: 21
You can have a look at the application layer data to find out how the service versions are formatted:
Server info in application layerYou can right click the server value and select Apply as filter.
http.server == "Microsoft-IIS/7.5"
Number of packets that have version 7.5 IIS
Answer: 71
Time to use the in operator. We can find all packets that use port 3333, 4444 or 9999 by using the following filter:
tcp.port in {3333 4444 9999}
That’s all there is to it 🙂
The answer is 2235.Answer: 2235What is the number of packets with “even TTL numbers”?
In the theory we learned about a function called string. This can convert a field to string values, and in the example it is then used to list odd values. We nearly have to do the same thing here, but this time we are interested in even values.
Now, the field we are interested in is the ip.ttl, which we then convert to a string to be able to see if it ends with a 2,4,6,8 or 0 by using some regular expression magic:
string(ip.ttl) matches "[24680]$"
Answer: 77289
We’re close now, let’s keep moving!
We have to change our profile. We do this in the lower right corner. Click profile and select Checksum Control.
Bad TCP checksums are shown in red and black colours. Packets that have invalid checksums will be marked as such with a warning in the information column in the summary pane and also, most important, if the checksum is BAD that tells wireshark that the packet is corrupted.
We can now use the Packet List Pane details or the Display Filter Expression menu to create the required filter.
I opted for selecting the checksum status field and right-clicked, selected Apply as filter, and choose Selected.
The number of packets with a bad TCP checksum is 34185 (see above).
Answer: 34185
There is only one filter available, and you can see it next to the display filter input. The filter is called gif/jpeg with http-2000 and it applies the following filter:
(http.response.code == 200 ) && (http.content_type matches "image(gif||jpeg)")
Select it and you will find the answer:
Answer: 261
Congratulations!
You just finished the “Wireshark: Packet Operations” room. In this room, we covered Wireshark statistics, filters, operators and functions.
Want to learn more? We invite you to complete the Wireshark: Traffic Analysis room to improve your Wireshark skills by investigating suspicious traffic activities.
Answer: No answer needed.
Congratulations on finishing this walkthrough of the TryHackMe Wireshark: Packet Operations room.
I hope you enjoyed this more intermediate Wireshark room, in which we learned about viewing statistics, and how to use more advanced display filters. I learned a lot!
Come back soon for more walkthroughs of rooms on TryHackMe and HackTheBox, and other Cybersecurity discussions.
Read more of my walkthroughs here.
You are welcome to comment on this post, or share my post with friends.
I would be even more grateful if you support me by buying me a cup of coffee:
I learned a lot through HackTheBox’s Academy. If you want to sign up, you can get extra cubes, and support me in the process, if you use the following link: