Buradasın
Payloadlar ve Shell Türleri Hakkında Kapsamlı Eğitim Videosu
youtube.com/watch?v=tVuCMIRNb3QYapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan, bilgisayar güvenliği alanında payloadlar ve shell türleri hakkında detaylı bilgi veren teknik bir eğitim içeriğidir. Eğitmen, izleyicilerden gelen soruları yanıtlamak amacıyla bu videoyu hazırladığını belirtmektedir.
- Video, payloadların ne olduğunu, türlerini ve nasıl kullanıldığını anlatarak başlıyor. Ardından reverse shell ve bind shell kavramları, staged ve stageless payloadlar, shell code ve farklı platformlarda payload üretme teknikleri ele alınıyor. Son bölümde ise jpeg, pdf, apk gibi farklı dosya formatlarının güvenlik zafiyetleri ve bunların çalıştırılabilir dosya formatlarıyla ilişkisi açıklanıyor.
- Eğitim içeriğinde Metasploit, Empire, Coveran gibi C2 yazılımları kullanılarak pratik örnekler sunuluyor ve msfvenom aracı ile farklı formatlarda payload üretme işlemleri gösteriliyor. Ayrıca, payloadların kalıcılığını artırmak için kullanılan zaman bombası, mantıksal bomba ve bağlantı kontrol mekanizmaları gibi teknikler de detaylı olarak anlatılıyor.
- 00:13Payload Kavramının Önemi
- Konuşmacı, payloadlar hakkında bilgi vermeyi amaçlıyor çünkü gelen sorularda ve Türkçe içeriklerde bu konuda eksik bilgiler ve yanlış yönlendirmeler olduğunu fark etmiş.
- Bazı içerik üreticileri tık alma uğruna bilgileri eksilttiğinden veya yanlış yönlendirdiğinden bahsediyor.
- Konuşmacı, payloadun yaşam öyküsünü, ne olduğu, ne amaçla kullanıldığı ve ne işe yaradığı hakkında bilgi vereceğini belirtiyor.
- 01:48Payload Kavramının Tanımı
- Payload kelimesi Türkçede "yük" anlamına gelir ve uzayla ilgili alanlarda roketlerin taşıdığı değerli kargolara, askeriyede roket atma ünitesinin maksimum kapasitesine verilen isimdir.
- Bilgisayar bilimlerinde bir mesajın, context'in veya kodun işlevsel kısmına payload denir.
- Cyber security alanında payload, karşı bilgisayarda, hedef makinada veya hedef sistemde çalıştırılması amaçlanan kod anlamına gelir.
- 03:41Payloadların Kullanım Amacı ve Türleri
- Payloadlar shell code, script veya özel yazılan bir program şeklinde olabilir ve karşı bilgisayarda çalıştırılması hedeflenen işlevsel parçaya verilen isimdir.
- Payloadların en büyük kullanım amaçlarından biri genellikle shell (kabuk) almaktır.
- Shell, işletim sistemine komut göndermeyi sağlayan bir ara birimdir ve karşı bilgisayarda bu ara birimi oluşturup kendimize aktarabiliriz.
- 05:25Shell ve Payload İlişkisi
- Remote Access Trojan (ROT) gibi zararlı yazılımlar aslında bir nevi shell'dir veya shell'i içerir.
- Shell ile karşı bilgisayarla TCP bağlantısı kurulur ve bu bağlantı üzerinden komutlar ve dosyalar gönderilir.
- Metasploit, Empire, Coveran gibi C2 yazılımlarının ait olduğu payloadlar ve GitHub'ta bulunan NJRAT gibi araçlarla payload üretilebilir.
- 07:48Reverse Shell ve Bind Shell Kavramları
- Bilgisayarlarda güvenlik ihlallerinde payload bırakmanın ve shell'in bize gelmesinin iki temel metodu vardır: reverse shell ve bind shell.
- Reverse shell, kurban bilgisayarının hacker bilgisayara bağlantı kurduğu bir ters bağlantı mantığıdır.
- Bind shell ise, payload execute edildiğinde kurban bilgisayarda belirli bir port üzerinden bir listing point oluşturması anlamına gelir.
- 12:00Reverse Shell ve Bind Shell Avantajları ve Dezavantajları
- Bind shell'ler genellikle başarısız sonuçlanır çünkü firewall'lar dışarıdan gelen bağlantıları tehlikeli olarak değerlendirip düşürür.
- Reverse shell'lerde, eğer hacker gelen bağlantıyı yakalayamazsa ve payload tek kullanımlıysa, bağlantı kaçırdıktan sonra tekrar bağlantı için payload'u execute etmek gerekir.
- Reverse shell'lerin kalıcılığını sağlamak için zaman bombası (time bomb) veya mantıksal bomba (logic bomb) gibi teknikler kullanılabilir.
- 16:11Kalıcı Bağlantı Sağlama Teknikleri
- Bağlantıyı kontrol eden mantıksal mekanizmalar eklenebilir, böylece bağlantı kurulamadığında belirli aralıklarla tekrar bağlantı isteği gönderilebilir.
- Metasploit gibi araçlarda persistence modülleri bulunsa da, özel ihtiyaçlar için manuel özelleştirmeler gerekebilir.
- Shell kodunun ne zaman çalışacağı ve nasıl çalışacağı konusunda kişiselleştirme yapmak, hacker'ın avantajlı durumda olmasını sağlar.
- 18:20Payload Türleri ve Çalışma Mantığı
- Payloadların karşı bilgisayara bırakılması işlemine "drop" denir.
- Payloadların çalıştırılma şekilleri iki türdür: single/stageless ve staged.
- Single/stageless payload'larda tüm işlevsel kod tek bir paket halinde karşı bilgisayara tek seferde bırakılır ve çalışır.
- 20:08Staged Payload Mantığı
- Staged payload'larda kod tek seferde gönderilmez, farklı sebeplerle (antivirüs dikkat çekme, statik analiz gibi) farklı parçalar halinde gönderilir.
- İlk giden parçaya "agent" veya "beacon" denir ve sistemde yerleşiklik sağlayarak komuta kontrol merkezi oluşturur.
- Arka tarafta bir merkez (Metasploit, Empire veya özel bir sunucu) bulunur ve bağlantı sağlandığında gerekli modüller gönderilir.
- 22:35Payload Türlerinin Avantajları ve Dezavantajları
- Single payload'lar dosya boyutu olarak daha büyüktür, staged payload'lar ise daha küçük boyutludur.
- Çalışma zamanında single payload'lar bağlantı entropisini daha az kullanır ve şüpheli aktivite göstermez.
- Staged payload'lar büyük modüller indirirken daha fazla ağ trafiği oluşturur ve antivirüs yazılımlarına daha fazla dikkat çeker.
- 24:29Payload Kavramının Genişlemesi
- Payload sadece shell oluşturmak için değil, karşı bilgisayarda çeşitli işlemleri gerçekleştirmek için de kullanılabilir.
- Karşı bilgisayardaki bilgileri elde edip gönderen veya dosyaları şifreleyen (ransomware) kodlar da payload olarak kabul edilir.
- Metasploit'te staged payload'lar işaretli (reverse_tcp) olarak, stageless payload'lar ise işaretli olmayan (reverse_tcp) olarak gösterilir.
- 27:23Shell Code Nedir ve Özellikleri
- Shell code, işlemciye doğrudan komut göndermeyi sağlayan, assembly instruction veya CPU instruction olarak değerlendirilebilen parametrelerdir.
- Shell code hexadecimal formatta gösterilir ve örnek olarak 354 byte'lık bir shell code örneği gösterilmiştir.
- Shell code, karşı bilgisayarda çalıştırıldığında bir payload oluşturur ve C dilinde nasıl çalıştırılacağı gösterilecektir.
- 28:22Payload Boyutları ve Farklı Platformlar
- Tek seferde çalıştırıldığında payload boyutu 175 bin byte'a kadar çıkabilir.
- 64 bit sistemler için payload boyutu 200 bin byte'a kadar çıkabilir, bu da 32 bit sistemlere göre daha fazla olabilir.
- Shell kodlarının boyutları, platform ve yazılış biçimine göre değişebilir.
- 30:38Shell Code Formatları ve Çalıştırma
- Shell code'lar farklı dillerde (örneğin C dilinde) kullanılabilir ve formatları değiştirilebilir.
- 64 bit için stage payload'un boyutu 510 byte kadardır ve bu ilk dropper olarak karşıya bırakılır.
- Shell kodlarını yazmak için assembly diline ve işlemci operantlarına hakim olmak gerekir.
- 32:57Çalıştırılabilir Dosya Formatları
- Metasploit'te "msfvenom -l formats" komutu ile kullanılabilen formatlar listelenebilir.
- Çalıştırılabilir formatlar arasında ASP, ASPX, DLL, ELF, EXE, JAR, MSI, PowerShell, Python, VBA gibi dosya tipleri bulunur.
- Bu dosya tiplerinin ortak özelliği sistem üzerinde bir kodu çalıştırma kapasitesine sahip olmalarıdır.
- 36:36Çalıştırılabilir Dosyaların Özellikleri
- EXE, ASPX, PowerShell, JAR, Python, VBS, VBA, COM, MSC, MSI gibi dosya tipleri çalıştırılabilir dosyalardır.
- Bu dosyalar çift tıklanıldığında arka tarafta bir kod parçası veya main fonksiyonu tetiklenir.
- Örneğin, bir C kodu dosyası executable hale getirildiğinde çift tıklanıldığında belirli işlemler gerçekleşir.
- 37:51Kod Çalıştırma ve Entry Point Kavramı
- Kodlar çalıştırılırken mutlaka bir entry point'e sahip olmalıdır ve bu entry point otomatik olarak oluşturulur.
- Tüm dosya tiplerinde kodlar çalıştırılırken entry point içerisindeki kodlar gelir ve çalıştırılmaya başlar.
- JPEG gibi dosyalar yorumlama biçimidir ve bir şeyi çalıştırmaz, sadece resim işleyicisi gelip renk kodlarını okuyarak pikselleri işlemeye başlar.
- 39:33JPEG Dosyasının Yapısı
- JPEG dosyası bir header bölümüne sahiptir ve bu bölümde meta veriler bulunmaktadır.
- JPEG'in işlevsel bölümündeki renk kodları altı haneli bir hex kodudur ve bu kodlar pikselleri işlemeye başlar.
- JPEG dosyası çalıştırılabilir bir veri değil, sadece meta veriler içerir.
- 41:48Dosya Formatlarının Güvenliği
- Sistem üzerinde dynamic olarak bir işlem gerçekleştirmeyen tüm dosya formatları için jpeg gibi dosyalar çalıştırılabilir değildir.
- JPEG gibi dosyaları çalıştırılabilir hale getirmek için yorumlayıcı üzerindeki bir zafiyeti (buffer overflow, zero day) keşfetmek ve tetiklemek gerekir.
- Güncel ve güvenli sistemlerde jpeg, mp3, mp4, png gibi dosyalar herhangi bir çalıştırılabilir olayı tetiklemeyecektir.
- 44:16Office Dosyaları ve Makrolar
- Standart doc dosyaları normalde tetikleyemiyor bir şeyleri, ancak ofis özelliklerinde makro denilen bir olay vardır.
- Makrolar aslında bir visual basic kodu gibidir ve kullanıcının işini kolaylaştırmak için kullanılır.
- Office 365 ile beraber makrolar default olarak kapalı gelmekte, kullanıcının açması gerekmektedir.
- 46:44PDF Dosyaları
- PDF okuyucuları javascript kodlarını çalıştırabilir ve PDF'lerde buton gibi özellikler bulunmaktadır.
- PDF'i açar açmaz bir şeyin tetiklenmesi için belli başlı exploitlere ihtiyaç vardır.
- Güvenli bir browserda PDF açıldığında otomatik olarak tetiklenmeyecektir.
- 48:19Dosya Formatları ve Güvenlik Zafiyetleri
- PDF dosyalarında zafiyetler bulunabilir ve sosyal mühendislikle kullanıcıların butonlara tıklaması sağlanabilir.
- JPEG gibi görsel dosya formatları aslında çalıştırılabilir dosyalar değildir, ancak bazı zafiyetlerleExecutable dosyaları gibi çalıştırılabilir hale getirilebilir.
- JPEG gibi dosyaların file formatı aslında JPEG değildir, bunlarExecutable dosyalar olup, dikkatli bir kullanıcı bunu anlamlandırabilir.
- 49:32Dosya Formatları ve Çalıştırma Mekanizması
- Shortcut (LNK) dosyaları ile PowerShell kodları tetiklenebilir veExecutable dosyalar çalıştırılabilir.
- JPEG veya MP4 gibi dosyaların elle tutulur çalıştırılabilir tarafı yoktur, bunlar yorumlanan dosya biçimleridir.
- Bu tür dosya biçimleri ile bir şey çalıştırmak için dosyanın header kısmındaki meta verisindeki zararlı kodu çalıştıracak bir yorumlayıcıya veya var olan yorumlayıcı üzerinde çalıştırılmasını sağlayacak bir zafiyete ihtiyaç vardır.
- 50:53Android Emülatörlerindeki Kandırıcılık
- Bazı kişiler Android emülatörlerinde JPEG dosyası gibi görünmesine rağmen gerçekte APK dosyası olan dosyalar kullanabilir.
- Dosya uzantıları kapalı olduğunda, kullanıcı dosyanın aslında APK olduğunu göremeyebilir.
- Emülatörler APK dosyalarını otomatik olarak kurar ve çalıştırır, bu nedenle küçük boyutlu dosyalar hızlı bir şekilde çalıştırılabilir.
- 52:41Sonuç ve Soru Cevap
- Çalıştırılabilir dosya formatlarına sahip olması gerekiyor, bu nedenle JPEG, PNG veya MP4 gibi görsel dosyalarınExecutable olarak çalıştırılması mümkün değildir.
- Payloadlar, shell kodları, ters bağlantılar ve bloklama mekanizmaları hakkında bilgi verilmiştir.
- İzleyicilerin merak ettikleri konuları soru cevap formatında yanıtlayacaklarını belirtmiştir.