Resmin ortasını dairesel kırpma kodu
import numpy as np import matplotlib.pyplot as plt def createCircularMask(h, w, center=None, radius=None): if center is None: # use the middle of the image center = [int(w/2), int(h/2)] if radius is None: # use the smallest distance between the center and image walls radius = min(center[0], center[1], w-center[0], h-center[1]) y, x = np.ogrid[:h, :w] dist_from_center = np.sqrt((x - center[0])**2 + (y-center[1])**2) mask = dist_from_center <= radius return mask img = plt.imread("image.jpg") h, w = img.shape[:2] radius = h/4 mask = createCircularMask(h, w, radius=radius) img[~mask] = 0 plt.imsave("image2.jpg", img, cmap="gray") |
İnternet ağını oluşturan her birim sadece kendine ait bir IP adresine sahiptir. Bu IP adresleri kullanıcıların kullanımı için www.site_ismi.com gibi kolay hatırlanır adreslere karşılık düşürülür. DNS sunucuları, internet adreslerinin IP adresi karşılığını kayıtlı tutmaktadır.

Tcpdump, Linux işletim sistemine sahip bilgisayarlarda komut satırında çalışan bir paket analizcisi programıdır. Kullanıcıya bağlı bulunduğu bir ağ üzerinden iletilen veya alınan TCP/IP paketlerini veya diğer paketleri yakalama ve gözlemleme olanağı sunar. BSD lisansı altında dağıtılan Tcpdump ücretsiz bir yazılımdır. Tcpdump, paket yakalamak için “libpcap” kütüphanesini kullanır. Tcpdump'ın Windows için olanı WinDump olarak adlandırılır ve libpcap’in Windows'a port edilmiş hali olan WinPcap kullanır.
TCPDUMP Kurulumu
- sudo apt-get install tcpdump
komutu ile kurulum gerçekleştirilir.
TCPDUMP Kullanımı
TCPDUMP klasik Lunix/Unix araçları gibi komut satırında çalışır. Parametre alarak çalışır ve parametresiz çalıştığında tespit ettiği ilk ağ arabirimini dinlemeye alır.
TCPDUMP programını kullanabilmek için root kullanıcı olmak gerekir.
TCPDUMP, paketleri çekirdeğe giriş veya çıkış yapmadan yakaladığı için iptables ile yazılan kurallardan etkilenmez.
Promiscious Mod
Normal şartlarda bilgisayarlar sadece kendilerine gelen paketleri dinlerler. Ancak TCPDUMP promiscious modda çalışır. Yani kendi ağında dolaşan tüm paketleri dinleyecek şekilde çalışır. Bu şekilde çalışma türüne promiscious mod denir. TCPDUMP komutu çalıştırıldığında ağ arabirimi promiscious moda geçer ve ağda ki tüm paketleri dinler. Komutun çalışması bittiğinde ağ arabirimi normal çalışma moduna geri döner. "ifconfig" komutunun çıktısında ağ arabirimlerinin hangi modlarda çalıştığı görülebilir(BROADCAST - PROMUSC - SIMPLEX - MULTICAST vb).
Sık Kullanılan Parametreler
- Arabirim Seçimi (-i)
Sistemimizde birden fazla ağ arabirimi bulunduğunda ve tcpdump parametresiz kullanıldığında aktif olan ağ arabirimleri arasında numarası en düşük olan dinlemeye alınır. Eğer istediğimiz bir ağ arabiriminin dinlenmesini istiyorsan bunu -i komutu ile belirtiriz.
tcpdump -i eth2
Sistemde bulunan ve tcpdump tarafından dinlemeye alınabilecek ağ arabirimlerinin listesini almak için aşağıdaki komut kullanılır.
tcpdump -D
- İsim Çözümleme (-n)
Eğer tcpdump ile yakaladığımız paketlerin dns isimlerinin çözülmesi istenmiyorsa -n parametresi kullanılır. Yoğun ağlarda tcpdump her tespit ettiği ip adresi-isim için dns sorgusu yapmaya çalıştığı ve cevap beklediği için ciddi yavaşlık hissedilir. Bu yüzden böyle durumlarda -n parametresi kullanılır.
tcpdump -n
Eğer ip-isim çevirinden başka port ve protocol numaralarınında isimlere çevrilmesi istenmiyorsa -nn parametresi kullanılır.
tcpdump -nn
- Zaman Damgası Gösterimi (-t)
Tcpdump çıktılarında paketlerin yakalandığı zaman aralıkları gösterilir. Eğer daha sade bir çıktı isteniyorsa -t parametresi ile bu bilginin gösterilmesi iptal edilebilir.
tcpdump -t
- Yakalanan Paketleri Dosyaya Kaydetme (-w)
Tcpdump ile konsol üzerinde paketleri yakalarken çıktılar çok hızlı bir şekilde akıp gidebilir. Eğer çıktıları detaylı bir şekilde incelemek istiyorsak bu çıktıları bir dosyaya yazabiliriz. Bu işlemi yapmak için -w parametresi kullanılır ve bu parametreden sonra yazılacak dosyanın ismi belirtilir.
tcpdump -w dosya_ismi
Tcpdump ile dosyaya yazdırılan çıktılar yine tcpdump ile okunabilir. Bunun için -r parametresi kullanılır.
tcpdump -r dosya_ismi
-w parametresi ile çıktıları dosyaya kaydederken filtreleme yapılabilir. Yani istenen tipte ki paketleri ya da belli zaman aralığında ki paketleri kaydedebiliriz. Aynı şekilde -r ile okuma yaparken de filtreleme kullanılabilir. Bu filtrelemenin -w ile kaydedilen filtreleme ile aynı olma zorunluluğu yoktur.
tcpdump -w log icmp
Yukarıda ki komut sadece icmp paketlerini dosyaya kaydeder.
tcpdump -r log -nn
Yukarıda ki komut okuma yaparken isim çözümlemelerini filtreler.
- Yakalanacak Paket Sayısını Sınırlama (-c)
Tcpdump kullanırken yakalayacağımız paketlerin sayısını belirlemek için -c parametresini kullanırız.
tcpdump -i eth0 -c 15
Yukarıda ki komut eth0 ağ arabiriminden geçen ilk 15 paketi yakalar ve durur.
- Yakalanacak Paketlerin Boyutunu Sınırlama (-s)
Tcpdump da -s parametresi ile yakalanacak paketlerin boyutu byte olarak belirtilebilir.
tcpdump -s 1500
- Detaylı Loglama Yapmak (-v)
Tcpdump da -v parametresi ile biraz daha detaylı çıktı üretilebilir. Örneğin bu parametre ile çıktımıza TLL ve ID değerleri dahil edilebilir.
- Promisc Modu Kapama (-p)
Tcpdump da çalışan tüm komutlar otomatik olarak promisc modda çalışır. Eğer komutumuzun promisc modta çalışmasını istemiyorsa -p parametresini kullanırız. Bu parametre, sadece bizim ağ arabirimizize gelen paketleri dinlememizi sağlar. Yani sadece direkt olarak bizim makinemize gelen ya da broadcast olarak gönderilen paketleri dinleriz.
tcpdump -p -i eth0
- 2. Katman Bilgilerini Yakalama (-e)
Tcpdump kullanarak ethernet başlık bilgileri de yakalanabilir. Yerel ağlarda yapılan trafik analizlerinde mac adresleri önemli bilgiler vermektedir.
tcpdump -t -nn -e
Yukarıda ki komut ile çıktımıza mac adres bilgisini ve varsa diğer 2. katman bilgilerini dahil etmiş olduk.
- BPF (Berkley Packet Filter)
Tcpdump ile gelişmiş paket filtreleme için BPF kullanılabilir. Yani mesela sadece x hostunun y portundan gelen paketleri dinle gibi bir filtre yazılabilir.
BNF üç ana kısımdan oluşur.
- Type (Host, net, port parametreleri)
- Direction (Src, dst parametreleri)
- Protocol (Ether, fddi, wlan, ip, ip6, arp, rarp parametreleri)
Host Parametresi
Sadece belirli bir host a ait paketlerin dinlenmesi isteniyorsa host parametresi kullanılır.
tcpdump host 10.0.0.21
Yukarıda ki bu komut kaynak ya da hedef ip adresi 10.0.0.21 olan paketlerin dinlenmesi gerektiğini belirtiyor.
Dst Host (Hedef Host Belirtme)
Bu parametre ile sadece hedef host olarak belirtilen adrese ait paketler dinlenir.
tcpdump -i eth0 dst host 10.0.0.1
Yukarıda ki bu komut makinemizin eth0 ağ arabirimine gelen ve hedefi 10.0.0.1 olan tüm paketlerin dinleneceğini belirtir.
Src Host (Kaynak Host Belirtme)
Bu parametre ile sadece kaynak host olarak belirtilen adrese ait paketler dinlenir.
tcpdump -i eth0 src host 10.0.0.21
Yukarıda ki bu komut makinemizin eth0 ağ arabiriminin yakaladığı ve kaynak hostu 10.0.0.21 olan paketleri dinleneceğini belirtir.
Sadece ip adresi vererek değil host ismi kullanarakta filtreleme yapılabilir.
tcpdump host hotmail.com
Dst host ve src host parametreleri aynı komutta kullanılabilir.
tcpdump src host 10.1.0.59 and dst host 10.1.0.1
Kaynak ip adresi 10.1.0.59 olan ve hedef ip adresi 10.1.0.1 olan paketlerin dinleneceğini belirtir.
Port Parametresi
Tcpdump da belirli bir portu dinlemek istediğimizde port parametresini kullanabiliriz. Host parametresi gibi port parametresi de src ve dst ön eklerini alabilir. Mantık host parametresi ile aynıdır.
tcpdump port 23
Kaynak veya hedef portu 23 olan paketlerin dinlenmesini belirtir.
tcpdump dst port 23
Hedef portun 23 olan paketlerin dinlenmesini belirtir.
tcpdump src port 23
Kaynak portun 23 olan paketlerin dinlenmesini belirtir.
tcpdump -nn host 192.168.2.165 and port 23
Host adresi 192.168.2.165 olan ve port numarası 23 olan paketlerin dns çözümlemesi yapılmadan dinlenmesini belirtir.
Tcpdump TCP Paket Formatı
16:21:24.174 ---------> Zaman damgası
192.168.60.3 ---------> Kaynak ip adresi
34720 ---------> Kaynak port numarası
> ---------> Yön belirteci
10.10.10.3 ---------> Hedef ip adresi
3389 ---------> Hedef port numarası
S ---------> TCP bayrağı (SYN Bayrağı set edilmiş)
2354677536 ---------> TCP Başlangıç seri numarası (ISN)
2354677536 ---------> Bir sonraki byte için beklenen sıra numarası
(0) ---------> Bu segmentin içerdiği uygulama verisi hesabı
win 5840 ---------> Byte cinsinden window size
mss 1460 ---------> Maximum segment size (MSS)
sackOK ---------> Selective acknowledgement
(DF) ---------> Paketin DF(parçalanmaması) özelliğinde olduğunu
Tcpdump UDP Paket Formatı
10:20:21.17 ---------> Zaman Damgası
172.27.20.4 ---------> Kaynak ip adresi
41197 ---------> Kaynak port numarası
> ---------> Yön belirteci
192.168.50.5 ---------> Hedef ip adresi
24 ---------> Hedef port numarası
udp 300 ---------> Byte cinsinden dup datagram boyutu
Tcpdump ICMP Paket Formatı
10:20:04.92 ---------> Zaman Damgası
172.27.20.4 ---------> Kaynak ip adresi
> ---------> Yön belirteci
NMAP ile bir IP adresinde açık olan portlarda çalışan servislerin taramasını yapabiliriz. Bu tarama ile o servisler hakkında bilgi edinebiliriz.
- sudo nmap -sS -sV -sC -n -v -p 21,53,80,139,445,1001,1900 192.168.1.1
komutu ile yerel ağımızda bulunan 192.168.1.1 IP adresinde daha önce açık olduğunu tespit ettiğimiz(bkz. NMAP ile Bir Bİlgisayarda Açık Olan Portları Öğrenme) 21, 53, 80, 139, 445, 1001 ve 1900 portlarında çalışan servisler hakkında bilgi edinebiliriz.
- -sS parametresi syn taraması yapılmasını belirtiyor.
- -sV parametresi açık olan portlarda ki servisleri tespit eder.
- -sC parametresi -sV parametresi ile kullanılır.
- -n parametresi dns taraması yapılmasını belirtiyor.
- -v parametresi tarama sonunda gösterilecek bilginin detayını belirtiyor.
- -p parametresi bir taranacak portları belirtiyor.
NMAP ile istersek tek bir IP adresinde ki bir bilgisayarı istersek de bir IP aralığında bulunan tüm bilgisaylarda ki portları tarayabiliriz.
NMAP ile açık olan bir IP adresi tespit edip o IP adresini tarayabiliriz veya kendi IP adresimizi ifconfig komutu ile öğrenip kendi bilgisayarımızı da tarayabiliriz.
- sudo nmap -Pn -sS -n -v --reason --open 192.168.1.105
komutu ile yerel ağımızda bulunan 192.168.1.105 IP adresinde açık olan portları öğrenebiliriz.
- -Pn parametresi güvenlik duvarına karşı alınan bir önlem olarak kullanılıyor.(NMAP konusunda detaylı anlatımı var)
- -sS parametresi syn taraması yapılmasını belirtiyor.
- -n parametresi dns taraması yapılmasını belirtiyor.
- -v parametresi tarama sonunda gösterilecek bilginin detayını belirtiyor.
- --reason parametresi bulunan sonuçların sebeplerinin de gösterilmesini belirtiyor.
- --open parametresi sadece açık portların gösterilmesini belirtiyor.


