Scapy Nedir? Ne İşimize Yarar? // '404eror

404eror

Gezgin
Merhaba arkadaşlar bu konumda sizlere elimden geldiğince, dilim döndüğünce scapy hakkında bilgiler vereceğim. NMAPincelemesinde scapy konusuna ayrıca değineceğimi söylemiştim şimdi onun sırası geldi. Konuyu daha iyi anlayabilmeniz için network temelinizin olması gerekmektedir lakin ben ufak özetler şeklinde hiç bilmeyen arkadaşlar için bilgiler vereceğim. NMAP incelemesi konusunda birkaç bilgi vermiştim bu sefer aynılarını değil bir tık daha ayrıntı olan bilgilere değineceğiz ama dediğim gibi konuyu okumadan yada okuduktan sonra konu içerisinde geçen terimleri araştırmanız ve sorgulamanız sizin faydanıza olacaktır. Şimdi dilerseniz konu başlıklarımızı sıralayalım:

1)Scapy Nedir?
2)Scapy Nasıl Kurulur?
3)Scapy Nasıl Kullanılır?
4)Scapy Ne İşimize Yarar?


Şimdi ön bilgilerimiz verdiğimize göre yavaş yavaş konumuzun asıl kısmına giriş yapalım, keyifli okumalar.







1)Scapy Nedir?

Scapy pythonla yazılmış olan, spesifik paketler oluşturup bunları iletmemizi sağlayan açık kaynak kodlu bir araç/python kütüphanesidir.

2)Scapy Nasıl Kurulur?

Bilgisayarınıza scapy’i kurabilmeniz için bilgisayarınızda python’un kurulu olması gerekmektedir. Python’un 2 veya 3 olması önemli değildir lakin 2.7 ve 3.3 sürümlerinden biri yada daha güncel olması önemlidir. Ayrıca bilgisayarınıza python’u yüklerken path olarak tanımlamanız işinize yarayacaktır. GNU/Linux sistemlerde python kurulu olarak gelir ve path olarak tanımlıdır yani direkt terminale python yazdığınızda program çalışmaya başlar ayrıca bir yol belirtmenize gerek kalmaz lakin windows’a yüklerken yükleme seçeneklerinden path olarak tanımlamayı sağlayan tiki işaretlemeyi unutmayınız.





Debian/Ubuntu’da Kurulum:

Kod:
sudo apt-get install scapy
Not: Kali Linux kullanıcılar için belirteyim scapy zaten dağıtımda yüklü geliyor bu işlemi yapmanıza gerek yok.

Windows’da Kurulum:

Scapy’nin çalışması için Npcap yada Winpcap yazılımlarından biri bilgisayarınıza kurulu olmalıdır. Eğer wireshark gibi programlar yüklüyse Windows’a yüklerken zaten Winpcap’i default olarak programla beraber kuruyor. Ben böyle bir durumun söz konusu olmadığı kullanıcılar için ikisinin de ayrı ayrı kurulumunu anlatacağım.





Npcap Kurulumu:


Kod:
https://nmap.org/npcap/dist/npcap-0.97.exe
Adresinden çalıştırılabilir windows dosyasını yükleyip çalıştırarak tipik program kurulumu yapar gibi bam bam bam diye kurabilirsiniz.


Winpcap Kurulumu:


Kod:
https://www.winpcap.org/install/
Adresinden yine npcap’ın kurulumuyla aynı şekilde kurabilirsiniz.

Not: Aç gözlülük yapıp fazla mal göz çıkarmaz diyerek ikisini de yüklemeyin. Birbirlerine negatif etki yaparlar ki zaten yüklerken birinden biri varsa kaldırmanızı söyleyip hatta kendisi kaldırıyor.

Yazılımlarımızı kurduktan sonra gelelim scapy’nin kurulumuna:

Kod:
https://github.com/secdev/scapy/archive/master.zip
Adresinden zip dosyamızı indirip istediğimiz bir yere çıkarıyoruz. Daha sonra komut satırını açıyoruz. Dosyayı çıkardığımız dizine gelip çıkardığımız dizine giriyoruz. “Setup.py” dosyasının olduğu dizine geldiğimizde. Komut satırına aşağıdaki kodu yazıp çalıştırıyoruz:

Kod:
python setup.py install
Tebrikler scapy’nin bilgisayarınıza kurulumu tamamlandı.


3)Scapy Nasıl Kullanılır?

Şimdi scapy kullanımına girmeden önce konuyu daha iyi anlayabilmeniz için network temelleri hakkında birkaç bilgi vermek istiyorum. Scapy’i doğru bir şekilde kullanabilmeniz için paket başlıklarını biliyor olmanız gerekli. Ben şimdi burada size tek tek paketleri, başlıkları, protokolleri anlatamam lakin bilmeniz gereken birkaç şeyi söyleyeceğim. Sürekli tekrar ettiğim ve konularımda belirttiğim gibi eğer siber güvenlik alanında ilerlemek istiyorsanız temellerinizin sağlam olması gerekmektedir. Üşenip sıkılıp ben direkt güvenliğe girecem diye dalamazsınız yoksa bir halt anlamaz ezbere iş yaparsınız bu yüzden network, web öğrenmeye ve araştırmaya başlayınız bizim burada verebileceğimiz bilgiler kısıtlı bilgilerdir.





IP Başlığı Hk.

Source IP: Kaynağın IP adresi
Destination IP: Hedef IP adresi
Flags: Paketin bozulmadan iletilebilmesi için gerekirse parçalanıp parçalanmayacağı hk. Bilgi veren kısımdır.
Header Checksum: Karşıdaki makinenin paketi bozulmadan alıp almadığını kontrol etmesini sağlayan paketin bilgi kısmı.
TTL(Time to Live): Gönderdiğimiz paketin loop’a(sonsuz döngü) girmemesi için ne kadar süre sonra yok olacağı hakkında bilgi veren kısımdır.





TCP Başlığı Hk
.

Sec ve Ack Num: Bunun hakkında NMAP konusunda bilgi vermiştim. Üçlü el sıkışma sırasında cihazların birbirlerini tanımaları için kullandıkları değerler.

Code Bits: Paket çeşidini belirten kısım.







ICMP Başlığı Hk.

Type: Kontrol mesajının tipi
Code: Kontrol mesajı tipinin alt dalı, daha spesifik bilgi.


DHCP: Dynamic Host Configuration Protocol. Ağda bulunan cihazlara IP, subnet mask, gateway gibi verilerin otomatik olarak atanmasını sağlayan protokoldür. IP çakışması vb durumları önlemek için çok önemlidir.

Şimdi bu bilgilerimizi verdiğimize göre scapy kullanımına geçebiliriz. Öncelikle temel komutlarımızla başlayalım.

Help(): Scapy hakkında yardım almanızı sağlayan komuttur. Parantez içine yardım almak istediğiniz şeyi yazabilir yada boş bırakarak fonksiyonu çalıştırıp komut satırına yardım almak istediğiniz konuyu yazabilirsiniz. Girip çıkamayan olursa diye çıkmak için “q”ya basınız.






Ls(): Scapy içinde bulunan hazır protokolleri sizin için listeler.








Ls(Protokol): Kullanacağınız protokolün içeriğini ve default değerlerini gösterir.





Sendp(): 2.katmandan paket yollamaya yarar.
Send(): 3.katmandan paket yollamaya yarar.

Not: Bu ikisi arasındaki fark oldukça önemlidir programlarınızda kullanırken birini değilde diğerini kullanırsanız “Lan nerede bu hata” diye saçınızı başınızı yolabilirsiniz.

Temel komutlarımızı verdiğimize göre şimdi paketlerimizi oluşturmaya geçebiliriz. Paketlerimizi oluştururken katman katman içeriklerini gireceğiz.



ICMP Paketi:

Ip başlığı ve ıcmp başlığı oluşturmamız gerekiyor. Aşağıdaki kodları sırayla takip edin.

Kod:
ip_basligi=IP(dst=”Hedef ip”, src=”kaynak ip”, ttl=20)
icmp_basligi=ICMP(type=8, code=0)
icmp_paketi=ip_basligi/icmp_basligi
send(icmp_paketi)
Şimdi paketimiz gitmiş mi bakalım:






DHCP Paketi:

Ip, udp ve dhcp basliklarını kullanacağız.

Kod:
ip_basligi=IP(src="0.0.0.0", dst="255.255.255.255")
udp_basligi=UDP(dport=67, sport=68)
dhcp_basligi=DHCP(options=[("lease_time", 70000)])
dhcp_paketi=ip_basligi/udp_basligi/dhcp_basligi
send(dhcp_paketi)
Paketimizi kontrol edelim:







DNS Paketi:

IP, UDP ve DNS kullanacağız.


Kod:
ip_basligi=IP(dest="8.8.8.8")

udp_basligi=UDP(dport=53)

dns_basligi=DNS(rd=1, qd=DNSQR(qname="www.*********.org"))

dns_paketi=ip_basligi/udp_basligi/dns_basligi

send(dns_paketi)
Kontrol edelim:









TCP Paketi:

Kod:
tcp_basligi=TCP(sport=8080, dport=22, flags="S")

ip_basligi=IP(src="127.0.0.1",dst="127.0.0.1")

tcp_paketi=ip_basligi/tcp_basligi

send(tcp_paketi)
Kontrol edelim:









NOT: Paketleri oluştururken örneklerde olduğu gibi alt katmandan üst katmana doğru yazdığımızı unutmayalım.

4)Scapy Ne İşimize Yarar?

Scapy ağ trafiğine müdahale edebilmemizi, istekler ve cevaplar yollayabilmemizi sağlar. Scapy’i kullanarak network saldırıları yapabilirsiniz. (Örn:MITM) Kendiniz network bilginizi pekiştirmek veya test etmek için scapy’i kullanabilirsiniz. NMAP konumda verdiğim koddaki gibi toollar yazmak için kullanabilirsiniz. Yani içinde ağ geçen neredeyse her şey de kullanabilirsiniz. Gerisi sizin hayal gücünüze ve yeteneğinize bağlı.

Umarım konu faydalı olmuştur. Bir yanlışımız varsa belirtiniz biz de feyzlenelim. Sürç-ü lisan ettiysek affola hayırlı geceler.



Bu yazının kaynağı: https://medium.com/three-arrows-security
 
Top