Как фильтровать DNS-запросы по dns.qry.name в tshark?

comando:

sudo apt-get install  linux-tools-4.15.0-22-generic

esto me funciona

3
20.09.2017, 23:17
1 ответ

Это проще сделать с дисплеем (wireshark )фильтром , чем с захватом (pcap )фильтром .

tshark -n -T fields -e dns.qry.name -f 'src port 53' -Y 'dns.qry.name contains "foo"'

См. справочную страницу pcap-filterо том, что можно делать с фильтрами захвата. Это довольно ограничено, вам придется анализировать протокол вручную. Здесь, в качестве приближения, предполагается, что имя запроса всегда имеет размер 0x20 байт в пакете udp (для DNS через UDP )и известно, что имя запроса не должно превышать 253 байта :

.
$ printf foo | xxd -p
666f6f
$ tshark -n -T fields -e dns.qry.name -f "src port 53 and $(awk '
    BEGIN{
      for(i=0;i<250;i++) {
        printf sep "(udp[%d]!=0&&((udp[%d:4]&0xffffff00)==0x666f6f00", i+20, i+20
        c = c "))"; sep = "||"
      }
      print c
    }')"
4
27.01.2020, 21:25

Теги

Похожие вопросы