SSL DECRYPTIE

Het is mogelijk om (in bepaalde omstandigheden) SSL pakketten die met Tshark/Wireshark worden onderschept te decoderen. Dit kan handig zijn met het zoeken naar problemen met SSL. Dit werkt wel niet met ieder programma, zo maken Firefox en Chromium (en dus Chrome) gebruik van de NSS Library, Deze library laat toe om deze programma’s (en andere programma’s die gecompileerd zijn met deze Library) te starten met een speciale parameter welke een SSL KEY logbestand opslaat, dit kan dan later gebruikt worden om de gegevens te decoderen.

Eerst starten we een capture: $ tshark -i ens3 -w ssl.pcap

daarna starten we firefox of chrome/chromium met: (doe dit in de correcte volgorde anders kun je het PCAP bestand niet ontsleutelen).

$ SSLKEYLOGFILE=/home/tshark/SSLKEYFILE firefox

Dit werkt op mijn Debian machine zoder problemen, maar het is mogelijk dat je eerst de omgevingsvariabele moet instellen met export SSLKEYLOGFILE=/home/tshark/SSLKEYFILE

Genereer nu wat netwerk verkeer in firefox, surf naar YouTube, Facebook, Linuxgebruikers.nl, Google, …

Als je klaar bent sluit je Firefox en stop je tshark.

Nu heb je 2 bestanden:

  1. ssl.pcap

  2. SSLKEYFILE

nu kun je deze PCAP openen in Wireshark en de SSL decoderen, maar wij gaan het vanuit de terminal doen.

Als je het bestand opent met $ tshark -r ssl.pcap -Y http zul je zien dat het bestand niet gedecodeerd is:

Maar als we nu het SSLKEYFILE gebruiken word de SSL gedecodeerd:

$ tshark -r ssl.pcap -o ssl.keylog_file:/home/tshark/SSLKEYFILE -Y http

[Opmerking]nota

Tenslotte nog even vermelden dat Tshark de profielen van Wireshark ondersteund. Dus als je een bepaald profile wil gebruiken dat je in Wireshark ook gebruikt kun je dat doen met de -C optie (tshark -r linuxusers.pcap -C PROFIELNAAM).

In bovenstaand voorbeeld heb ik een profiel dat enkel Protocol, Lenght en Info weergeeft.

Als je geen gebruik maakt van de GUI kun je ook velden (fields) specificeren met -T fields bijv:

$ tshark -r linuxusers.pcap -T fields -e ip.addr -e ip.src -e ip.dst Dit geeft 3 velden weer:

  1. IP Adres

  2. IP adres van oorsprong

  3. Doel IP adres

Om alleen maar veldnamen te weergeven die te gebruiken zijn in een Display Filter kun je ook tshark -G fields gebruiken. Het weergeven duurt lang omdat er veel moet worden weggeschreven naar de terminal, maar met gebruik van een pager kan het sneller (gebruik pijltjestoetsen om te navigeren en q om de pager te sluiten): tshark -G fields | grep udp | column -ts | less

bron o.a. Sergey Guzenkov