Merhaba Değerli TurkHackTeam Ailesi, Bu eğitimde, ağ analizi ve paket manipülasyonu dünyasının güçlü aracı olan Scapy'i keşfedeceğiz.
Scapy Nedir?
Scapy, ağ analizi, paket manipülasyonu ve ağ üzerinde hızlı prototip geliştirmek için kullanılan bir Python kütüphanesidir. Temelde bir paket manipülasyon aracı olarak kullanılan Scapy, ağ trafiğini dinleyebilme, farklı ağ protokollerine uygun paketler oluşturma, gönderme ve almayı sağlar. Özellikle siber güvenlik profesyonelleri ve ağ mühendisleri tarafından yaygın olarak kullanılan Scapy, ağ üzerindeki güvenlik açıklarını tespit etmek, ağ trafiğini analiz etmek ve özel ağ araçları geliştirmek için ideal bir araçtır.
Scapy'nin Temel Özellikleri:
Ağ Protokollerine Uyum: Scapy, birçok ağ protokolünü destekler ve kullanıcıların ihtiyaçlarına göre özelleştirilebilir.- Paket Manipülasyonu: Paketlerin içeriğini ve başlıklarını kolayca değiştirebilir, yeni paketler oluşturabilir ve ağ üzerindeki trafiği manipüle edebilirsiniz.
- Esnek Kullanım: Python tabanlı olması nedeniyle Scapy, diğer Python kütüphaneleriyle kolayca entegre edilebilir ve geniş bir kullanıcı kitlesi tarafından desteklenir.
- Hızlı Prototip Geliştirme: Scapy, ağ üzerinde hızlıca prototipler geliştirmek için idealdir. Kullanıcılar, hızlı bir şekilde farklı ağ senaryolarını simüle edebilir ve test edebilirler.
- Gelişmiş Analiz Yetenekleri: Ağ trafiğini dinleme, yakalama ve analiz etme yetenekleri sayesinde, Scapy kullanıcıları ağdaki güvenlik tehditlerini ve sorunları tespit edebilirler.
Scapy Nasıl Kurulur:
Bash:
pip install scapy
Paket Oluşturma:
Python:
from scapy.all import *
# ICMP paketi oluşturma
icmp_packet = IP(dst="www.example.com")/ICMP()
# UDP paketi oluşturma
udp_packet = IP(dst="192.168.1.1")/UDP(dport=12345)
# TCP paketi oluşturma
tcp_packet = IP(dst="10.0.0.1")/TCP(dport=80)
# Özel bir paket oluşturma
özel_packet = Ether()/IP(dst="192.168.1.1")/ICMP()
Paket Gönderme:
Python:
from scapy.all import *
# Paketi gönderme
send(icmp_packet)
# Belirli bir arayüze paket gönderme
sendp(icmp_packet, iface="eth0")
# Belirli bir arayüze ve belirli bir hedefe paket gönderme
sendp(icmp_packet, iface="eth0", dst="00:11:22:33:44:55")
Paket Dinleme:
Python:
from scapy.all import *
# ICMP paketi oluşturma
icmp_packet = IP(dst="www.example.com")/ICMP()
# UDP paketi oluşturma
udp_packet = IP(dst="192.168.1.1")/UDP(dport=12345)
# TCP paketi oluşturma
tcp_packet = IP(dst="10.0.0.1")/TCP(dport=80)
# Özel bir paket oluşturma
özel_packet = Ether()/IP(dst="192.168.1.1")/ICMP()
Paket Manipülasyonu:
Python:
from scapy.all import *
# Paketi gönderme
send(icmp_packet)
# Belirli bir arayüze paket gönderme
sendp(icmp_packet, iface="eth0")
# Belirli bir arayüze ve belirli bir hedefe paket gönderme
sendp(icmp_packet, iface="eth0", dst="00:11:22:33:44:55")
Bu örneklerde, Scapy kullanarak ICMP, UDP ve TCP gibi farklı türde paketler oluşturulur, gönderilir, dinlenir ve manipüle edilir. Bu temel kullanım örnekleri, Scapy'nin paket düzeyinde ağ işlemleri üzerindeki gücünü göstermektedir.
Birlikte basit bir proje yapalım; Bize gelen paketleri görüntüleme yapalım
Birlikte basit bir proje yapalım; Bize gelen paketleri görüntüleme yapalım
Python:
from scapy.all import sniff, IP # lazım olanları projeye dahil etme
# Paket dinleme
def packet_listele(paket):
if IP in paket:
print(f"Gelen Paket: {paket.summary()}")
# Paket dinlemeye başla
sniff(prn=packet_listele, count=10)
Count Kısmı kaç tane paketi görüntülemek istediğinizi istiyor, Eğer Count kullanmazsanız sınırlama olmadan paketleri görüntüleyebilirsiniz
Bu Sefer Hangi Protokolde Geldiğini Göstersin:
Bu Sefer Hangi Protokolde Geldiğini Göstersin:
Python:
from scapy.all import sniff, IP, TCP, UDP # lazım olanları projeye dahil etme
# Paket dinleme
def packet_listele(paket):
if IP in paket:
if UDP in paket:
print(f"Gelen UDP Paketi: {paket.summary()}")
elif TCP in paket:
print(f"Gelen TCP Paketi: {paket.summary()}")
else:
print(f"Gelen Paket (Diğer): {paket.summary()}")
# Paket dinlemeye başla
sniff(prn=packet_listele, count=50)
2 tür protokol ayarladık daha fazla eklenebilir