I want to observe the HTTPs protocol. How can I use a Wireshark filter to do that?
-
For those who want to see the decrypted data without server access, go man in the middle: http://stackoverflow.com/questions/2136599/how-to-create-man-in-the-middle-instrumentation – Ciro Santilli OurBigBook.com Dec 14 '14 at 15:38
7 Answers
tcp.port==443 in the filter window (mac)

- 579
- 4
- 5
-
If you're going to post an answer, it really should be one that's substantially different to the other answers on the page already. Saying the same thing that two other answers already say isn't particularly helpful. – Mark Henderson Jun 13 '14 at 02:52
-
10It is substantially different. He added the tcp prefix, which really helped me, after trying previous answers with no luck. – user53619 Aug 27 '14 at 14:36
-
You mean apply that in the display filter. That small input window is called the display filter in Wireshark. – Remzi Cavdar Jan 07 '23 at 20:35
As 3molo says. If you're intercepting the traffic, then port 443
is the filter you need. If you have the site's private key, you can also decrypt that SSL . (needs an SSL-enabled version/build of Wireshark.)

- 9,127
- 1
- 32
- 47
-
4There is a difference between filtering and monitoring. WireShark is a monitoring tool. Filtering would have to be done with a firewall or similar. – txwikinger Apr 26 '11 at 15:13
-
11
-
1
"port 443" in capture filters. See http://wiki.wireshark.org/CaptureFilters
It will be encrypted data though.

- 4,330
- 5
- 32
- 46
You can use the "tls" filter:
TLS stands for Transport Layer Security, which is the successor to the SSL protocol. If you're trying to inspect an HTTPS request, this filter may be what you're looking for.

- 171
- 1
- 3
-
clearly much better than listening for 443, since 443 is just the default for https, and one is free to use other ports (e.g. for internal traffic) – P Marecki Apr 01 '20 at 10:22
-
2`ssl` is also a valid filter name. (*tls* is not in *version 2.6.10 (Git v2.6.10 packaged as 2.6.10-1~ubuntu16.04.0)* ) - `tls` has apparently replaced `ssl` which is right in my opinion. – Michael P Apr 16 '20 at 12:17
-
`ssl` works for me. However, `tls` does not. I am using ver2.6.10 on utuntu18.04 – r0ng Mar 12 '21 at 03:43
-
It's not the same, you get more with `tcp.port==443` but for websites I think using the filter `tls` is better. – Remzi Cavdar Jan 07 '23 at 20:38
Filter tcp.port==443
and then use the (Pre)-Master-Secret obtained from a web browser to decrypt the traffic.
Some helpful links:
https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/
"Since SVN revision 36876, it is also possible to decrypt traffic when you do not possess the server key but have access to the pre-master secret... In short, it should be possible to log the pre-master secret to a file with a current version of Firefox, Chromium or Chrome by setting an environment variable (SSLKEYLOGFILE=). Current versions of QT (both 4 and 5) allow to export the pre-master secret as well, but to the fixed path /tmp/qt-ssl-keys and they require a compile time option: For Java programs, pre-master secrets can be extracted from the SSL debug log, or output directly in the format Wireshark requires via this agent." (jSSLKeyLog)

- 354
- 3
- 6
-
anyway to do this on an iPhone mounted on a mac? I can inspect http traffic but not https – chovy Dec 27 '15 at 04:00
-
I would use a proxy for that @chovy. Is that an alternative? Try BURP and this link: https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp – Ogglas Dec 27 '15 at 11:35
-
-
I think there are but I haven't tried any myself. Try Googling "intercepting proxy open source" and see what you find. However BURP is well known in the security community and not something shady (despite the name) so I would probably go with BURP. @chovy – Ogglas Dec 28 '15 at 08:56
Answering because I was looking for something similar.
When you use tcp.port
, it only seems to show half the conversation. To show where 443 is either source or destination: tcp.srcport == 443 || tcp.dstport == 443

- 1
if you want to see HTTP and HTTPS (encrypted traffic with TLS), this filter helpful
http.request or tls.handshake.type == 1

- 101
- 1