Tüm yazılar

Windows'un İçindeki Linux: Güvenlikçiler için WSL'e Sıcak Bir Giriş

WSL nedir, WSL 1 ile 2 arasındaki fark, Kali kurulumu, reverse shell'leri bozan ağ tuzağı ve günlük işleri kolaylaştıran küçük ayarlar.

WSL: Windows'un içindeki Linux — PowerShell'de Kali kurulumu ve WSL içinde çalışan bir terminal

Bir zamanlar Windows kullanan bir güvenlikçinin önünde iki seçenek vardı: ya bilgisayarı ikiye bölüp her seferinde yeniden başlatmak (dual boot), ya da birkaç GB RAM'i yiyip yavaş açılan bir sanal makineyle yaşamak. WSL (Windows Subsystem for Linux) üçüncü bir yol açtı: Linux'u Windows'un içinde, bir uygulama açar gibi çalıştırmak.

Bu yazıda WSL'in ne olduğunu, Kali'yi nasıl birkaç dakikada kurabileceğini ve en önemlisi, pentest yaparken insanı saatlerce uğraştıran ağ tuzağını anlatacağım. Görsellerdeki terminal çıktıları kendi makinemden.

WSL tam olarak ne?

Kısaca: Windows'ta, Linux programlarını gerçekten çalıştırmanın resmi yolu. İki sürümü var ve aralarındaki fark, neyin çalışıp neyin çalışmayacağını belirliyor:

WSL 1 ve WSL 2 mimarisi: WSL 1 sistem çağrılarını çevirir, WSL 2 hafif bir sanal makinede gerçek Linux çekirdeği çalıştırır
WSL 1 Linux çağrılarını Windows'a "tercüme eder"; WSL 2 ise hafif bir sanal makinede gerçek bir Linux çekirdeği çalıştırır.
  • WSL 1, Linux sistem çağrılarını Windows çekirdeğine çeviren bir katmandır. Gerçek bir Linux çekirdeği yoktur; bu yüzden ham soket (raw socket) gibi düşük seviyeli işler sınırlıdır.
  • WSL 2, Hyper-V altyapısı üzerinde bir saniyede açılan hafif bir sanal makinede gerçek Linux çekirdeği çalıştırır. sudo nmap -sS ile SYN taraması, Docker, kernel modülü gerektiren araçlar burada çalışır.

Güvenlik işleri için cevap net: WSL 2. Bugün wsl --install zaten varsayılan olarak onu kuruyor.

5 dakikada kurulum

Yönetici olarak açtığın bir PowerShell yeterli:

# WSL'i kur (ilk seferde yeniden başlatma isteyebilir)
wsl --install

# Kurulabilecek dağıtımları gör, Kali'yi ekle
wsl --list --online
wsl --install -d kali-linux
PowerShell'de wsl --version ve wsl -l -v çıktısı: WSL 2.7.8, dağıtım WSL 2 sürümünde çalışıyor
wsl -l -v çıktısındaki VERSION 2, dağıtımın gerçek çekirdekle çalıştığını gösterir.

Kali WSL'de neredeyse boş gelir; araçları sen seçersin. Klasik araç setini istiyorsan:

sudo apt update && sudo apt full-upgrade -y
sudo apt install -y kali-linux-default     # nmap, burp, impacket, metasploit...
# ya da daha hafifi:
sudo apt install -y kali-linux-headless

Grafik arayüzlü araçlar (Burp, Wireshark) için ekstra bir şey gerekmez: Windows 11'deki WSLg sayesinde Linux pencereleri Windows masaüstünde normal bir uygulama gibi açılır. Tam bir Kali masaüstü istersen sudo apt install -y kali-win-kex ve ardından kex --win -s.

İçeride hayat nasıl?

En tatlı kısmı şu: iki dünya birbirini görüyor.

WSL içinde uname, /mnt altındaki Windows sürücüleri, NAT IP adresi ve bash'ten çalıştırılan powershell.exe
Çekirdek gerçek, Windows diskleri /mnt altında, Windows programları da bash'ten çağrılabiliyor.
  • Windows dosyaları Linux'ta: C:\ sürücüsü /mnt/c altında.
  • Linux dosyaları Windows'ta: Gezgin'in adres çubuğuna \\wsl.localhost\kali-linux yaz, ya da Linux'tayken explorer.exe . çalıştır.
  • Programlar karşılıklı: bash'ten powershell.exe, notepad.exe; PowerShell'den wsl nmap -sV 10.10.10.5.

Güvenlikçinin asıl tuzağı: ağ

Görseldeki 172.31.45.208 adresine dikkat. Varsayılan modda WSL 2, Windows'un arkasında kendi küçük NAT ağında yaşar. Dışarı bağlanmak sorun değil; ama içeri gelen bağlantılar (reverse shell!) WSL'e ulaşmaz.

NAT modunda hedefin reverse shell'i Windows'a ulaşır ama WSL'e iletilmez; mirrored modda Windows ve WSL aynı arayüzleri paylaşır
NAT modunda reverse shell Windows'ta kalır; mirrored modda ya da VPN'i WSL içinde çalıştırınca dinleyicine ulaşır.

Klasik senaryo: HTB/PG VPN'ini Windows'ta açarsın, Kali'de nc -lvnp 443 dinlersin, hedefe LHOST olarak VPN IP'ni verirsin… ve hiçbir şey gelmez. Bağlantı Windows'a çarpar, kimse dinlemediği için düşer. İki temiz çözüm var:

Çözüm 1: VPN'i WSL'in içinde çalıştır

sudo apt install -y openvpn
sudo openvpn lab.ovpn          # tun0 artık Linux'ta
ip -4 addr show tun0           # LHOST olarak bu IP'yi kullan

Tünel, dinleyicinin olduğu yerde bittiği için NAT modunda bile çalışır. En az ayar isteyen yol bu.

Çözüm 2: Mirrored ağ modu

Windows 11'de WSL'e Windows'un ağ arayüzlerini aynen kullandırabilirsin. Kullanıcı klasöründe %UserProfile%\.wslconfig dosyasını oluştur:

[wsl2]
networkingMode=mirrored
memory=6GB        # isteğe bağlı: WSL'in RAM üst sınırı
processors=4      # isteğe bağlı

Sonra wsl --shutdown ile WSL'i kapatıp yeniden aç. Artık Kali, Windows'un tun0 adresini de görür. Gelen bağlantıları Hyper-V güvenlik duvarı engelleyebilir; her şeyi açmak yerine sadece dinleyici portuna izin ver (yönetici PowerShell):

New-NetFirewallHyperVRule -Name WSL-443 -DisplayName "WSL reverse shell 443" `
  -Direction Inbound -VMCreatorId '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' `
  -Protocol TCP -LocalPorts 443

Kısa yol: Lab'da en az sürprizi Çözüm 1 yaşatır. Mirrored mod ise Windows'taki araçlarla (ör. Burp'ün Windows sürümü) WSL'i aynı ağda buluşturmak istediğinde güzel.

Küçük ama tatlı ayarlar

  • Çalışma dosyalarını Linux tarafında tut (~/). /mnt/c üzerinden dosya işlemleri belirgin şekilde yavaştır; ayrıca exploit ve payload'larını Windows klasörlerinde tutmak, Defender'ın onları "bulup" silmesine davetiye çıkarır.
  • Bir şeyler tuhaflaşınca: wsl --shutdown. Bilgisayarı yeniden başlatmanın WSL'deki karşılığı, iki saniye sürer.
  • Windows Terminal'de Kali'yi varsayılan profil yap; sekmeler ve bölünmüş paneller tmux'a alışık olmayanlar için bile rahat.
  • VS Code'u WSL eklentisiyle kullan: Kali'de bir klasördeyken code . yazınca editör Windows'ta açılır ama dosyalar ve terminal Linux'ta kalır.
  • Yedek al: wsl --export kali-linux kali-yedek.tar ile tüm kurulumu tek dosyada saklayabilir, başka makinede wsl --import ile geri açabilirsin.

WSL'in yetmediği yerler

  • Kablosuz testler: Wi-Fi adaptörünü monitor modda kullanmak için USB'yi WSL'e aktarmak (usbipd-win) ve uygun sürücüyü derlemek gerekiyor. Bu iş için ayrı bir Kali kurulumu ya da VM daha az uğraştırır.
  • Sınav ortamı: OSCP gibi sınavlarda OffSec'in önerdiği ortam Kali sanal makinesi. WSL'i günlük işler ve lab için düşün; sınav günü sürpriz istemezsin.
  • Kurumsal cihazlar: EDR ve şirket politikaları WSL'i kısıtlayabilir ya da izleyebilir. İş bilgisayarında kullanmadan önce kuralları kontrol et.

Özet kartı

İstediğinKomut
Kali kurwsl --install -d kali-linux
Dağıtımları ve sürümleri görwsl -l -v
WSL'i yeniden başlatwsl --shutdown
Linux dosyalarını Gezgin'de açexplorer.exe .
Reverse shell sorunsuz gelsinVPN'i WSL'de çalıştır ya da networkingMode=mirrored
Kurulumu yedeklewsl --export kali-linux kali.tar

WSL, "Linux mu Windows mu?" sorusunu "ikisi birden" diye cevaplıyor. Ağ tuzağını bir kez çözdükten sonra, günlük pentest notlarından lab makinelerine kadar çoğu işi tek bir bilgisayarda, yeniden başlatmadan yapabiliyorsun. OSCP'ye hazırlanıyorsan, buradaki komutların çoğunu OSCP Ultimate Guide'da sınav akışı içinde bulabilirsin.