Yazar

2018-03-09 20:04:31

Tcpdump


Temel Bilgiler

Aşağıda, tcpdump yapılandırılırken kullanabileceğiniz birkaç seçenek vardır.Diğer filtrelerle, örneğin Wireshark'ı unutmak ve / veya karıştırmak kolaydır, bu yüzden umarım bu sayfa sizin için bir referans olarak hizmet edebilir. Baktığım şeye bağlı olarak akılda tutmak istediğim ana konular.

Seçenekler

  • -i any : Herhangi bir trafik görüp görmediğinizi görmek için tüm arayüzleri dinleyin.
  • -i eth0 : eth0 arayüzünü dinlemek.
  • -D : Dinlenebilir arayüzleri listele.
  • -n : Ana makine adlarını çözümleme.
  • -nn : Ana makine adlarını veya bağlantı noktası adlarını çözümleme.
  • -q : Daha az ayrıntılı çıktı.
  • -t : İnsan tarafından okunabilen zaman damgası çıktılarını verin.
  • -tttt : Maksimum insan tarafından okunabilen zaman damgası çıktılarını verin.
  • -X : Paket içeriğini hem hex hem ascii olarak gösterin.
  • -XX : -X ile aynı, ama aynı zamanda ethernet başlığını gösterir.
  • -v, -vv, -vvv : Geri aldığınız paket bilgilerinin miktarını artırın.
  • -c : Sadece x adet paket al ve sonra dur.
  • -s : Yakalamanın yakalama uzunluğunu (boyut) bayt cinsinden tanımlayın. Kasten daha az yakalamadıkça, her şeyi elde etmek için -s0 kullanın.
  • -S : Mutlak sıra numaralarını yazdır.
  • -e : Ethernet başlığı da alın.
  • -q : Daha az protokol bilgisi göster.
  • -E :Şifreleme anahtarı sağlayarak IPSEC trafiğini çözün.

Tcpdump 4.0'dan itibaren varsayılan yakalama uzunluğu 68 bayttan 96 bayta değiştirildi. Bu size görecek bir paket verecek olsa da, hala her şeyi alamayacak. Tam kapsama almak için -1514 veya -s 0 kullanın.

İfadeler

Üç ana ifade türü vardır: tip, dir ve proto.

  • Tür seçenekleri şunlardır: host, net ve port.
  • Yön, src, dst ve bunların kombinasyonlarını yapmanıza izin verir.
  • Proto (col): tcp, udp, icmp, ah ve daha fazlasını atamanızı sağlar.

Örnekler

Seçeneklerimizin ne olduğunu gördük, şimdi günlük çalışmalarımızda görebileceğimiz bazı gerçek dünya örneklerine bakalım.

Temel İletişim

Sadece tüm arayüzlere bakarak neler olduğunu görün.

# tcpdump -i any

 

Belirli Arayüz

Belirli bir arayüzde neler olduğuna dair temel bakış.

# tcpdump -i eth0

 

Ham çıktı görünümü

Ana bilgisayar adları ve bağlantı noktası sayıları, mutlak sıra numaraları ve insan tarafından okunabilir zaman damgaları olmaksızın ayrıntılı çıktı.

# tcpdump -ttttnnvvS

 

Ip trafiğini bul

En yaygın sorgulardan biri, ister kaynak ister hedef olsun, bu size 1.2.3.4'ten gelen trafiği gösterir.

# tcpdump host 1.2.3.4

Paketin daha fazlasını hex çıkışıyla görmek

Söz konusu paketlerin içeriğini görmek istediğinizde Hex çıkışı yararlıdır ve genellikle en yakın inceleme için birkaç adayı izole ederken en iyi şekilde kullanılır.

# tcpdump -nnvXSs 0 -c1 icmp

 

tcpdump: listening on eth0, link-type EN10MB (Ethernet), 23:11:10.370321 IP 
(tos 0x20, ttl  48, id 34859, offset 0, flags [none], length: 84) 
69.254.213.43 > 72.21.34.42: icmp 64: echo request seq 0 
        0x0000:  4520 0054 882b 0000 3001 7cf5 45fe d52b  E..T.+..0.|.E..+
        0x0010:  4815 222a 0800 3530 272a 0000 25ff d744  H."..50'..%..D
        0x0020:  ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213  .^..............
        0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
        0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
        0x0050:  3435 3637                                4567
1 packets captured
1 packets received by filter
0 packets dropped by kernel

 

 

TABLE 2. — Bir ICMP Paketini Ayrıntılı Yakalama

Kaynak ve hedefe göre filtreleme

Trafiği src ve dst kullanarak herhangi bir kaynağa veya hedefe dayalı olarak izole etmek oldukça kolaydır.

# tcpdump src 2.3.4.5 
# tcpdump dst 3.4.5.6

Ağa göre paket bulma

Belirli bir ağa giden veya oradan giden paketleri bulmak için, net seçeneğini kullanın. Bunu src veya dst seçenekleriyle de birleştirebilirsiniz.

# tcpdump net 1.2.3.0/24

Belirli bir porta ait trafik

Port seçeneğini ve ardından port numarasını kullanarak belirli port trafiğini izleyebilirsiniz.

# tcpdump port 3389 

# tcpdump src port 1025

Bir protokolün trafiğini göster

Belirli bir trafik türü arıyorsanız, tcp, udp, icmp ve diğer birçok şeyi de kullanabilirsiniz.

# tcpdump icmp

Sadece ip6 trafiğini göster

Protokol seçeneğini kullanarak tüm IP6 trafiğini de bulabilirsiniz.

# tcpdump ip6

Port aralıkları kullanarak trafik bul

Trafiği bulmak için bir dizi bağlantı noktasını da kullanabilirsiniz.

# tcpdump portrange 21-23

Paket boyutuna göre trafik bul

Belirli bir boyutta paket arıyorsanız, bu seçenekleri kullanabilirsiniz. Matematikten bekleyebileceğiniz daha az, daha büyük veya ilişkili sembolleri kullanabilirsiniz.

# tcpdump less 32 

# tcpdump greater 64 

# tcpdump <= 128

Yakalanan paketleri dosyaya yazma

Paket yakalamalarını gelecekte analiz için bir dosyaya kaydetmek genellikle yararlıdır. Bu dosyalar PCAP (PEE-cap) dosyaları olarak bilinir ve ağ analizörleri, saldırı tespit sistemleri ve tcpdump'ın kendisi de dahil olmak üzere yüzlerce farklı uygulama tarafından işlenebilir. Burada -w anahtarını kullanarak capture_file adlı bir dosyaya yazıyoruz.

# tcpdump port 80 -w capture_file

Pcap dosyalarını okuma

PCAP dosyalarını -r anahtarını kullanarak okuyabilirsiniz. Bir dosyada okurken tcpdump içindeki tüm normal komutları kullanabileceğinizi unutmayın; Yalnızca dosyada olmayanları yakalayabileceğiniz ve işleyemediğiniz gerçeği ile sınırlıdır.

# tcpdump -r capture_file

Gelişmiş

Artık bazı örneklerle temel bilgilerle neler yapabileceğimizi gördük, biraz daha gelişmiş şeylere bakalım.

Her şey kombinasyonlarla ilgili

Tcpdump'un gerçek büyüsü, tam olarak aradığınız şeyi izole etmek için seçenekleri yaratıcı yollarla birleştirebilme yeteneğinden gelir. Kombinasyonlar yapmanın üç yolu vardır;

  1. AND 
    and or &&
  2. OR 
    or or ||
  3. EXCEPT 
    not or !

Kombine komutların bazı örnekleri.

Belirli bir ip üzerinden ve belirli bir port için

Kaynak ip adresi 10.5.2.3 olan hedef portu 3389 olan paketler.

tcpdump -nnvvS src 10.5.2.3 and dst port 3389

Bir ağdan diğerine

192.168.x.x adresinden gelen ve 10.x veya 172.16.x.x ağlarına giden tüm trafiği arayalım. Ayrıca, ana bilgisayar adı çözünürlüğü ve bir seviye ek ayrıntı içermeyen hex çıkışı gösteriyoruz.

tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16

Belirli bir ip ye giden ve protokolü icmp olmayan trafiği

Bu bize ICMP olmayan 192.168.0.2'ye giden tüm trafiği gösterir.

tcpdump dst 192.168.0.2 and src net and not icmp

Belirli bir port olmayan bir ana bilgisayardan gelen trafik

Bu, bize tüm trafiği SSH trafiği olmayan bir ana bilgisayardan gösterir (SSH servisini varsayılan port olarak düşünelim).

tcpdump -vv src mars and not dst port 22

Görebildiğiniz gibi, ihtiyacınız olan her şeyi bulmak için sorgu oluşturabilirsiniz. Anahtar, önce neyi aradığınızı tam olarak belirlemek ve daha sonra söz konusu belirli trafik türünü izole etmek için sözdizimini oluşturmaktır.

Karmaşık gruplama ve özel karakterler

Ayrıca karmaşık sorguları oluştururken seçeneklerinizi tek tırnak kullanarak gruplamak zorunda kalabileceğinizi de unutmayın. Tek tırnaklar, tcpdump'ın belirli özel karakterleri görmezden gelmesi için kullanılır - bu durumda “()” parantezlerinin altında. Aynı teknik, host, port, net, vb. Gibi diğer ifadeleri kullanarak gruplamak için kullanılabilir. Aşağıdaki komuta bir göz atın.

#10.0.2.4 adresinden gelen trafik AND hedef portlar 3389 or 22 (yanlış)

# tcpdump src 10.0.2.4 and (dst port 3389 or 22)

Bu çok kullanışlı komutu çalıştırmayı denerseniz, parantez nedeniyle bir hata alırsınız. Bunu, parantezden (her birinin önüne bir tane koyarak) kaçarak veya tüm komutu tek tırnak içine koyarak düzeltebilirsiniz:

# 10.0.2.4 adresinden gelen trafik AND hedef portlar 3389 or 22 (doğru)

# tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

Özel tcp bayraklarını ayırma

Belirli TCP bayraklarına göre de trafiği yakalayabilirsiniz.

Bütün URGENT (URG) paketlerini göster…

# tcpdump 'tcp[13] & 32!=0'

Bütün ACKNOWLEDGE (ACK) paketlerini göster…

# tcpdump 'tcp[13] & 16!=0'

Bütün PUSH (PSH) paketlerini göster…

# tcpdump 'tcp[13] & 8!=0'

Bütün RESET (RST) paketlerini göster…

# tcpdump 'tcp[13] & 4!=0'

Bütün SYNCHRONIZE (SYN) paketlerini göster…

# tcpdump 'tcp[13] & 2!=0'

Bütün FINISH (FIN) paketlerini göster…

# tcpdump 'tcp[13] & 1!=0'

Bütün SYNCHRONIZE/ACKNOWLEDGE (SYNACK)paketlerini göster…

# tcpdump 'tcp[13]=18'

Tcpdump‘s flag field çıkışında sadece PSH, RST, SYN ve FIN bayrakları görüntülenir. URG'ler ve ACK'ler görüntülenir, ancak bayrak alanında değil, çıktıda başka yerlerde gösterilirler.

Ancak, çoğu güçlü araçta olduğu gibi, bir şeyler yapmanın birçok yolu vardır. Aşağıdaki örnek, belirli TCP bayrakları ayarlanmış paketlerin yakalanması için başka bir yol gösterir.

# tcpdump 'tcp[tcpflags] == tcp-syn'

# tcpflags seçeneği ile RST bayraklarını yakala…

# tcpdump 'tcp[tcpflags] == tcp-rst'

# tcpflags seçeneği ile FIN bayraklarını yakala…

# tcpdump 'tcp[tcpflags] == tcp-fin'

Aynı teknik diğer bayraklar içinde kullanılabilir.

Şimdilik söyleceklerim bu kadar umarım faydalı olmuştur.


Etiketler : Network Security