

Examining malicious traffic in Wireshark can help to understand how a particular attack works and the potential impacts of the attack. If an attacker is attempting to perform an SQL injection attack against a website, the traffic will be carried in HTTP requests and responses. HTTP traffic is also used for attacking legitimate webpages. This functionality is built into intrusion detection and prevention systems, but analysis of malicious content in Wireshark can be useful for extracting signatures or indicators of compromise (IoCs) for identifying and preventing future attacks. Since HTTP is designed as a plaintext protocol, it is straightforward to scan web pages for malicious content before they reach the user if they are using HTTP or the organization uses a web proxy or other solution for HTTPS decryption. This includes phishing pages, websites containing drive-by downloads and so on. Since HTTP is the backbone of the web, any type of malicious website uses HTTP for delivery. As a result, it can be abused in a variety of different ways by a hacker. Since HTTP is used for requesting and serving webpages, it is the most common type of traffic present on most networks and is not blocked at the network perimeter. The actual data being carried by the HTTP protocol (the requested web page) is encapsulated within the data section of the HTTP packet. It is very similar to that of an HTTP request, except that it substitutes an HTTP response message for the URL and uses a different collection of headers. The image above shows the structure of an HTTP response in Wireshark. These headers are under the control of the user and are intended for use by the server, so they can be modified by an attacker who controls both ends of the connection, making them ideal for passing data during an attack. This includes the requested URL and a variety of different HTTP headers, including the host, user-agent and several others. The image above shows the structure of an HTTP request in Wireshark.

Wireshark reassembles all of the actual data packets containing a particular webpage and displays it within the packet labeled as the HTTP response. However, since HTTP runs over TCP and http only shows packets using the HTTP protocol, this can miss many of the packets associated with the session because they are TCP packets (SYN, ACK and so on).

http - apply http - display all packets identified as HTTP.First, I created filter buttons for general display filters, so that I can apply them with a single click:

I disabled analysis of all other protocols. Keep in mind, though, that one needs visibility at all layers of the network stack for most work in my environment, I need Wireshark to dissect Ethernet, IPv4, TCP, UDP, ICMP, SSL/TLS, HTTP, and a handful of other protocols. Disabling irrelevant protocols will greatly enhance overall performance. By default, Wireshark tries to dissect every protocol it can identify.and there are hundreds of protocols in its dissection engine. The most significant performance optimization one can implement in Wireshark is to disable analysis of irrelevant protocols. So, I set out to optimize Wireshark's performance and tweak its display for HTTP analysis. So, one could work through a Wireshark session, using display filters like =404, ntent_length > 4096, or http.time > 2.0 to display various packets.but, to be honest, I'd rather not do that much typing. I almost always have that TCP preference enabled, because the client/browser usually can't do anything with the response until it receives all of it! the end of any data returned) if that preference is disabled, http.time reflects the time between the request and the first packet of the response (i.e. If the TCP preference " Allow subdissector to reassemble TCP streams" is enabled, http.time reflects the time between the request and the last packet of the response (i.e. That last filter needs a bit of explanation, because it can be computed in two different ways.
