CLI Tool van de week : tshark

november 19, 2017

Editie 11, 19 november 2017.

De tool die we deze week gaan bespreken is Tshark, het commando-regel programma uit het Wireshark pakket.

Wireshark is een tool die veel gebruikt wordt door IT professionals voor het zoeken naar netwerkproblemen (troubleshooting), indringers, debuggen, etc. Het laat onder bepaalde omstandigheden zelfs toe om SSL verkeer te decoderen (voor probleemopsporing).

Tshark en Wireshark maken beide gebruik van libpcap en ze hebben bijna dezelfde functionaliteit en de PCAP bestanden die je met deze tools kunt maken zijn uitwisselbaar. Dit heeft als voordeel, dat je het verkeer op een systeem kunt “onderscheppen” met Tshark en het later analyseren in Wireshark. Maar aangezien dit een CLI artikel is gaan we ons vooral bezig houden met Tshark.

Tshark is niet standaard geïnstalleerd dus dat moet eerst gebeuren. Dit doe je met de Pakketbeheerder van jouw distributie (bij Debian en Debian-based distro’s zoals Ubuntu en Mint doe je dit met $ sudo apt install tshark).

Debian zal vragen of je een niet-root gebruiker wil toelaten om pakketten te filteren.

Omdat het gebruikt van Tshark/Wireshark als root een groot beveiligingsrisico kan vormen is het aan te raden om dit te doen met een gebruiker met zo weinig mogelijk rechten om de risico’s te beperken. Bij Debian kun je bij deze vraag JA antwoorden en de gebruiker toevoegen aan de “wireshark” groep (sudo usermod -a -G wireshark $GEBRUIKER), maar we kunnen ook een speciale gebruiker aanmaken speciaal voor Tshark/Wireshark en dat gaan we hier doen.

Eerst maken we de nieuwe gebruiker aan :
sudo adduser tshark (eventueel met aanvullende opties als de shell, Gecos naam e.d.)

Als je een andere gebruikersnaam kiest (bijv. patrick) dan moet je de groep tshark nog aanmaken met:
sudo groupadd tshark
En de gebruiker toevoegen aan deze groep
sudo usermod -a -G tshark patrick

Nu doen we nog wat aanpassingen aan de groep

sudo chgrp tshark /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

 

en ter controle

sudo getcap /usr/bin/dumpcap

 

het resultaat moet zijn :
usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

De gebruiker tshark kan nu netwerk pakketten filteren.

Deze methode staat vermeld in de Handleiding die ik heb geraadpleegd voor dit artikel, er ik echter nog een 2de methode die minder aanpassingen verijst. Hiervoer moet je bij de vraag of niet root gebruikers pakketten mogen onderscheppen JA aangeven en de gebruiker daarna toevoegen aan de wireshark groep $ sudo usermod -aG wireshark GEBRUIKER (dit is de methode dit ik zelf gebruik).

bij beide methodes moet je eerst uitloggen en opnieuw inloggen (of de PC herstarten) voor dit werkt!SSLKEY

een manier om dit te testen is:
# su tshark
$ tshark -c 1 -q

Behalve Tshark, bevat het pakket nog andere tools zoals:

  • dumpcap (dit wordt gebruikt om de gegevens te verzamelen)
  • rawshark
  • capinfos
  • editcap
  • mergecap
  • text2pcap

De simpelste manier om Tshark te gebruiken is gewoon het commando tshark ingeven, Tshark zal dan alle netwerk pakketten op de eerst gevonden actieve netwerk adapter (niet de loopback interface) filteren en een info regel per pakket weergeven op het scherm.
$ tshark

Maar wat als we een andere netwerk adapter willen scannen of iedere (any, any is een “cooked capture”) ?
hiervoor starten we tshark met de -D optie:
$ tshark -D

De namen en nummers van de interfaces zullen per systeem veriëren, mijn netwerk op deze “virtuele computer” heet ens3, maar op mijn “gewone” computer is het wlp3s0 (draadloos).

de -i (interface) optie laat toe om een andere interface te kiezen, en bepaalde systemen hebben ook een “any” optie, deze optie scant alle netwerk adapters, maar heeft wel enkele beperkingen.

PRO TIP: Hoewel het mogelijk is om een netwerk adapter te selecteren bij naam of nummer wordt het aangeraden om het niet via het nummer maar via de naam te doen. De reden hiervoor is dat het mogelijk is dat de nummering van de adapters verandert terwijl je aan het systeem aan het werken bent (als een adapter uitvalt of wordt verwijderd bijv). Gebruik dus de naam om dit te voorkomen.
$ tshark -i ens3

Pagina's: 1 2 3 4 5 6

2 Comments

  • Peter november 22, 2017 at 12:28 am

    Vanwaar de handmatige toevoeging van de groep en aanpassing van permissies van dumpcap? Deze zullen bij het bijwerken van pakketten weer overschreven worden. De voorkeur gaat naar het toevoegen van een gebruiker aan de wireshark groep ([code]sudo gpasswd -a $USER wireshark[/code]), vergeet dan niet opnieuw in te loggen.

    BPF staat voor “Berkeley Packet Filter”, ook wel “Capture Filter” genoemd (gedocumenteerd in de “pcap-filter” handleiding). Display filters zijn in de “wireshark-filter” handleiding gedocumenteerd.

    Om alleen maar veldnamen te weergeven die te gebruiken zijn in een Display Filter kun je ook [code]tshark -G fields[/code] 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):
    [code]tshark -G fields | grep udp | column -ts $’t’ | less[/code]

    Bij SSL/TLS decryptie moet trouwens een omgevingsvariable ingesteld worden met “export”:
    [code]export SSLKEYLOGFILE=~/key.log[/code]
    of:
    [code]SSLKEYLOGFILE=~/key.log firefox[/code]
    Vergeet niet eerst het oude proces te sluiten, de instelling wordt alleen opgepikt bij een verse start.

    Prima tips verder! ?

    • Patrick Kox november 23, 2017 at 8:55 am

      Peter, Bedankt voor de feedback. De reden voor de instellingen voor dumpcap zijn simpelweg omdat ze zo vermeld stonden in mijn documentatie (Traffic Analysis with tshark How-To van Packt Publishing). Zelf gebruik ik trouwens ook gewoon de sudo usermod -a -G wireshark $USER methode, maar aangezien deze methode in het boek vermeld stond heb ik die aangehouden. Het lijkt me in ieder geval veiliger dan het uitvoeren met sudo of vanuit de root account wat men soms ook als optie geeft.

      Je andere tips zal ik opnemen in het artikel zodra ik toegang heb tot een echte computer en geen GSM ?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *