Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Sızma Testleri için Temel Python Kütüphaneleri ve Uygulamaları

Sızma Testlerinde Python Kütüphanelerinin Gücü

Sızma testi (Penetration Testing), bir sistemin, ağın veya uygulamanın güvenlik zafiyetlerini belirlemek amacıyla yetkilendirilmiş bir saldırıdır. Bu süreçte kullanılan birçok araç ve metodoloji bulunmakla birlikte, Python programlama dili esnekliği, geniş kütüphane desteği ve okunabilir sözdizimi sayesinde sızma testi uzmanları arasında popüler bir tercih haline gelmiştir. Python, ağ taramasından zafiyet analizine, otomasyondan exploit geliştirmeye kadar geniş bir yelpazede kullanılabilir. Bu makalede, sızma testlerinde sıklıkla başvurulan temel Python kütüphanelerini ve bunların kullanım alanlarını detaylı bir şekilde inceleyeceğiz.

Neden Python?

Python'ın sızma testlerindeki popülaritesi birkaç temel nedene dayanır:
  • Geniş Kütüphane Desteği: Ağ etkileşiminden web taramasına, kriptografiden veri analizine kadar her alanda yüzlerce kütüphane mevcuttur.
  • Hızlı Geliştirme: Okunabilir sözdizimi ve yorumlayıcı dil olması sayesinde, hızlı prototipleme ve araç geliştirme imkanı sunar.
  • Platform Bağımsızlığı: Windows, Linux ve macOS gibi farklı işletim sistemlerinde sorunsuz çalışır.
  • Otomasyon Yeteneği: Tekrarlayan görevleri otomatikleştirmek için idealdir.

Temel Python Kütüphaneleri ve Kullanım Alanları

1. Ağ Katmanı ve Paket Manipülasyonu: Scapy

Scapy, Python tabanlı güçlü bir paket manipülasyon aracıdır. Ağ paketlerini oluşturma, gönderme, yakalama ve çözümleme yetenekleri sayesinde sızma testlerinde kilit bir rol oynar. DNS sorgularını taklit etmekten ARP zehirlenmesine, port taramasından custom paket enjeksiyonuna kadar birçok ağ tabanlı saldırı veya savunma testi senaryosunda kullanılabilir.

Kod:
from scapy.all import *

# Basit bir ICMP paketi oluşturma ve gönderme
# ping_paket = IP(dst="192.168.1.1")/ICMP()
# cevap = sr1(ping_paket, timeout=1, verbose=0)
# if cevap:
#    print(f"Cevap geldi: {cevap.summary()}")

# Port taraması örneği (SYN taraması)
# Hedef IP ve port aralığı
# hedef_ip = "192.168.1.1"
# portlar = [80, 443, 22, 21, 23]
# print(f"{hedef_ip} üzerinde port taraması yapılıyor...")
# for port in portlar:
#    cevap = sr1(IP(dst=hedef_ip)/TCP(dport=port, flags="S"), timeout=1, verbose=0)
#    if cevap and cevap.haslayer(TCP) and cevap.getlayer(TCP).flags == 0x12: # SYN-ACK
#        print(f"Port {port} açık!")
#        sr(IP(dst=hedef_ip)/TCP(dport=port, flags="R"), timeout=1, verbose=0) # Reset the connection
Scapy'nin raw soketlere erişim yeteneği, düşük seviyeli ağ protokollerinin incelenmesi ve manipüle edilmesi için benzersiz fırsatlar sunar. Bu kütüphane ile, güvenlik araştırmacıları kendi özel protokollerini test edebilir veya mevcut protokollere yönelik zafiyetleri keşfedebilir.

2. HTTP İstekleri ve Web Taraması: Requests ve BeautifulSoup

Web uygulamaları, sızma testlerinin önemli bir odağıdır. Requests kütüphanesi, Python'da HTTP istekleri göndermek için endüstri standardı haline gelmiştir. Kullanımı son derece kolay ve güçlüdür; GET, POST, PUT, DELETE gibi tüm HTTP metotlarını destekler, oturum yönetimi, çerezler, kimlik doğrulama gibi özellikler sunar.

Kod:
import requests

# Basit bir GET isteği
# response = requests.get("https://example.com")
# print(f"Durum Kodu: {response.status_code}")
# print(f"İçerik Uzunluğu: {len(response.text)} karakter")

# POST isteği örneği
# payload = {'username': 'testuser', 'password': 'password123'}
# login_response = requests.post("https://example.com/login", data=payload)
# print(f"Giriş Denemesi Durum Kodu: {login_response.status_code}")

Web sayfalarından veri çekme (web scraping) ve HTML/XML içeriğini ayrıştırma için ise BeautifulSoup4 (genellikle `bs4` olarak adlandırılır) kütüphanesi kullanılır. Requests ile çekilen HTML içeriği, BeautifulSoup ile kolayca ayrıştırılabilir, belirli elemanlara (linkler, resimler, form alanları vb.) erişilebilir. Bu ikili, web zafiyet tarayıcıları, bilgi toplama araçları ve otomatikleştirilmiş sızma testleri geliştirmek için vazgeçilmezdir.

Kod:
from bs4 import BeautifulSoup

# HTML içeriği (Requests ile çekildiği varsayılır)
# html_doc = """
# <html><head><title>Test Sayfası</title></head>
# <body>
#   <p class="title"><b>Başlık</b></p>
#   <a href="http://example.com/ilk" class="sister" id="link1">Link 1</a>
#   <a href="http://example.com/ikinci" class="sister" id="link2">Link 2</a>
# </body></html>
# """
# soup = BeautifulSoup(html_doc, 'html.parser')

# Başlığı bulma
# print(f"Sayfa Başlığı: {soup.title.string}")

# Tüm linkleri bulma
# for link in soup.find_all('a'):
#    print(f"Link: {link.get('href')}")

3. Ağ Keşfi ve Tarama: python-nmap

Nmap, ağ keşfi ve güvenlik denetimi için endüstri standardı bir araçtır. python-nmap kütüphanesi, bu güçlü aracın Python üzerinden programatik olarak kullanılmasını sağlar. Bu sayede, Nmap'in tüm özelliklerinden (port tarama, servis versiyon tespiti, işletim sistemi parmak izi vb.) faydalanarak özel tarama komut dosyaları ve otomasyon araçları geliştirmek mümkün olur.

Kod:
import nmap

# Nmap tarayıcı objesi oluşturma
# nm = nmap.PortScanner()

# Temel bir port taraması
# hedef_ip = "127.0.0.1" # Kendi IP adresinizi veya bir test ortamı IP'sini kullanın
# nm.scan(hosts=hedef_ip, arguments='-p 22,80,443 -sS -O') # SYN tarama, OS tespiti

# for host in nm.all_hosts():
#    print(f"Host : {host} ({nm[host].hostname()})")
#    print(f"State : {nm[host].state()}")
#    for proto in nm[host].all_protocols():
#        print(f"----------")
#        print(f"Protocol : {proto}")
#        lport = nm[host][proto].keys()
#        for port in lport:
#            print(f"port : {port}\tstate : {nm[host][proto][port]['state']}")
`python-nmap` ile, büyük ağ segmentlerinin otomatik olarak taranması, zafiyet tarayıcılarına entegrasyonu ve tarama sonuçlarının özelleştirilmiş raporlar halinde sunulması gibi işlemler kolayca gerçekleştirilebilir.

4. Zafiyet Geliştirme ve Sömürü: Pwntools ve Impacket

Pwntools, exploit geliştiriciler ve CTF (Capture The Flag) oyuncuları için tasarlanmış kapsamlı bir çerçevedir. Bu kütüphane, binary sömürü (örneğin, buffer overflow, format string bugları) için gerekli olan bir dizi yardımcı fonksiyon sunar: G/Ç yönetimi, assemblers/disassemblers, ELF dosyalarıyla etkileşim, kriptografik işlemler ve daha fazlası. Pwntools, karmaşık exploitleri daha hızlı ve verimli bir şekilde yazmak için idealdir.

Kod:
from pwn import *

# Basit bir uzak bağlantı örneği
# r = remote('challenge.example.com', 1337)
# r.sendline(b'Hello Pwntools!')
# print(r.recvline())
# r.close()

# Paketleme/Açma işlemleri
# p32(0xdeadbeef) # Little-endian 4-bayt integer
# u64(b'\x01\x02\x03\x04\x05\x06\x07\x08') # Little-endian 8-bayt integer
Pwntools, özellikle düşük seviyeli programlama ve bellek sömürüsü konularında çalışan sızma testi uzmanları için vazgeçilmez bir araçtır.

Impacket, ağ protokolleri üzerinde programatik erişim sağlayan bir Python kütüphaneleri koleksiyonudur. Özellikle Windows ortamlarındaki sızma testlerinde sıklıkla kullanılır. SMB, MSRPC, DCERPC gibi protokollerin uygulanmasına olanak tanır ve Pass-the-Hash, Golden Ticket gibi saldırıları gerçekleştirmek için araçlar içerir. Active Directory ortamlarında zafiyet tespiti ve sömürüsü için eşsiz bir kaynaktır.

"Impacket, Windows ağ protokollerinin derinlemesine anlaşılması ve sömürülmesi için bir köprü görevi görür."

5. Uzak Erişim ve Yönetim: Paramiko

Paramiko, SSHv2 protokolünün bir Python uygulamasıdır. SSH istemcisi ve sunucusu işlevselliği sunar. Bu kütüphane sayesinde, bir sızma testi uzmanı uzak sunuculara SSH ile bağlanabilir, komutları yürütebilir, dosya transferi yapabilir (SFTP), port yönlendirme (port forwarding) yapabilir. Otomatik uzak sistem yönetimi ve tünelleme senaryoları için idealdir.

Kod:
import paramiko

# SSH istemcisi oluşturma
# client = paramiko.SSHClient()
# client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# Bağlantı kurma (kullanıcı adı/şifre veya anahtar ile)
# try:
#    client.connect('remote_host_ip', username='your_username', password='your_password')
#    stdin, stdout, stderr = client.exec_command('ls -la')
#    print(f"Çıktı:\n{stdout.read().decode()}")
#    client.close()
# except paramiko.AuthenticationException:
#    print("Kimlik doğrulama hatası!")
# except paramiko.SSHException as e:
#    print(f"SSH hatası: {e}")
Paramiko, özellikle geniş ağlarda birden fazla sunucuya erişim sağlanması gereken durumlarda veya SSH üzerinden otomatize edilmiş işlemler için çok kullanışlıdır.

6. İşletim Sistemi Etkileşimi ve Otomasyon: os, subprocess, openpyxl

`os` ve `subprocess` kütüphaneleri, Python'ın standart kütüphanesinin bir parçasıdır ve sızma testlerinde sıklıkla kullanılır. `os` modülü, dosya sistemiyle (dizin oluşturma, dosya okuma/yazma, izinler vb.) ve işletim sistemi ortam değişkenleriyle etkileşim kurmak için kullanılır. `subprocess` modülü ise harici programları çalıştırmak ve bunların çıktılarını yakalamak için güçlü bir yöntem sunar. Nmap, Metasploit, dirb gibi popüler sızma testi araçlarını Python betikleri içerisinden kontrol etmek için `subprocess` kritik bir rol oynar.

Kod:
import os
import subprocess

# Mevcut dizini listeleme (os modülü ile)
# print(f"Mevcut Dizin: {os.getcwd()}")
# print(f"Dizin İçeriği: {os.listdir('.')}")

# Harici komut çalıştırma (subprocess ile)
# try:
#    result = subprocess.run(['nmap', '-F', '127.0.0.1'], capture_output=True, text=True, check=True)
#    print(f"Nmap Çıktısı:\n{result.stdout}")
# except subprocess.CalledProcessError as e:
#    print(f"Hata: {e}")
#    print(f"Stderr: {e.stderr}")
Bu iki modül, özellikle custom araç zincirleri oluştururken veya farklı güvenlik araçlarının entegrasyonunu sağlarken büyük kolaylık sağlar. Sızma testlerinde toplanan verilerin işlenmesi veya raporlanması için Excel gibi formatlar kullanılabilir. openpyxl kütüphanesi, Excel dosyalarını (XLSX) okuma, yazma ve değiştirme yeteneği sunar. Toplanan zafiyet verilerini, port tarama sonuçlarını veya kullanıcı listelerini düzenli bir şekilde raporlamak için kullanılabilir.

example_python_logo.png

Görsel: Python'ın sızma testlerinde kullanılabilecek yeteneklerini simgeleyen temsili bir görsel.

Sonuç

Python, sızma testi ve genel siber güvenlik alanında vazgeçilmez bir araç haline gelmiştir. Yukarıda bahsedilen kütüphaneler, bir sızma testi uzmanının günlük görevlerini otomatikleştirmesine, karmaşık saldırı senaryolarını modellemesine ve etkili güvenlik araçları geliştirmesine olanak tanır. Scapy ile ağ katmanında derinleşim, Requests ve BeautifulSoup ile web uygulamalarını hedefleme, python-nmap ile ağ keşfi, Pwntools ve Impacket ile zafiyet sömürüsü ve Paramiko ile uzak yönetim, Python'ın sunduğu imkanlardan sadece birkaçıdır. Her bir kütüphanenin kendine özgü güçlü yönleri vardır ve bir araya geldiklerinde sızma testlerinin verimliliğini ve etkinliğini önemli ölçüde artırırlar. Bu kütüphanelere hakim olmak, her sızma testi uzmanının araç kutusunda bulunması gereken temel yetkinliklerdendir. Python'ın esnekliği sayesinde, güvenlik araştırmacıları kendi özel ihtiyaçlarına göre bu kütüphaneleri birleştirebilir veya yeni araçlar geliştirebilir.
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected