mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
5.6 KiB
5.6 KiB
Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini alın
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm** takip edin**.
- Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR gönderin.
Paketlenmiş ikili dosyaları tanımlama
- Dize eksikliği: Paketlenmiş ikili dosyaların neredeyse hiç dize içermediği yaygındır
- Kullanılmayan çok sayıda dize: Ayrıca, bir kötü amaçlı yazılımın ticari bir paketleyici kullandığında çok sayıda çapraz referans olmayan dize bulmak yaygındır. Bu dizeler varsa bile, bu ikili dosyanın paketlenmediği anlamına gelmez.
- Bir ikili dosyanın hangi paketleyicinin kullanıldığını bulmaya çalışmak için bazı araçlar da kullanabilirsiniz:
- PEiD
- Exeinfo PE
- Language 2000
Temel Tavsiyeler
- Paketlenmiş ikili dosyayı IDA'da alttan yukarı doğru analiz etmeye başlayın ve yukarı doğru hareket edin. Paketleyici, paketlenmiş kodun çıkış yaptığı anda çıkar, bu nedenle paketleyicinin başlangıçta paketlenmiş kodun yürütülmesini paketlenmiş kodun yürütülmesine geçirme olasılığı düşüktür.
- JMP'leri veya CALL'ları araştırın, kayıtlara veya bellek bölgelerine yönlendirin. Ayrıca, argümanları iten işlevleri ve bir adres yönü ve ardından
retn
çağıran işlevleri arayın, çünkü bu durumda işlevin dönüşü, çağrılan adresi yığın üzerine ittikten sonra çağırmadan önce çağırabilir. VirtualAlloc
üzerine bir kesme noktası koyun, çünkü bu, programın yazılabileceği bellek alanını ayırır. Fonksiyonu çalıştırdıktan sonra EAX içindeki değere ulaşmak için "kullanıcı koduna çalış" veya F8'i kullanın ve "bu adrese dökün". Paketlenmiş kodun kaydedileceği bölge olup olmadığını asla bilemezsiniz.- Argüman olarak "40" değeriyle
VirtualAlloc
kullanmak, Oku+Yaz+Çalıştır anlamına gelir (buraya kopyalanacak bir yürütme gerektiren kod). - Kodu açarken, aritmetik işlemlere ve
memcopy
veyaVirtual
Alloc
gibi işlevlere çok sayıda çağrı bulmak normaldir. Yalnızca aritmetik işlemler gerçekleştiren ve belki de bazımemcopy
işlemleri gerçekleştiren bir işlevde bulunursanız, işlevin sonunu (belki bir JMP veya bir kayda çağrı) bulmaya çalışın veya en azından son işlevi çağıran çağrıyı bulun ve kod ilginç değilse çalıştırın. - Kodu açarken, bir bellek bölgesini değiştirdiğinizde bellek bölgesi değişikliğinin paketlenmiş kodun başlangıcını gösterebileceğini unutmayın. Bir bellek bölgesini Process Hacker (işlem --> özellikler --> bellek) kullanarak kolayca dökümleyebilirsiniz.
- Kodu açmaya çalışırken, zaten paketlenmemiş kodla çalışıp çalışmadığınızı bilmek (böylece sadece dökebilirsiniz) için ikili dosyanın dizelerini kontrol etmek iyi bir yoldur. Bir noktada bir sıçrama yaparsanız (belki bellek bölgesini değiştirirken) ve daha fazla dize eklendiğini fark ederseniz, o zaman paketlenmemiş kodla çalıştığınızı bilebilirsiniz.
Ancak, paketleyicide zaten çok sayıda dize bulunuyorsa, "http" kelimesini içeren dize sayısına bakabilir ve bu sayının artıp artmadığını görebilirsiniz. - Bir bellek bölgesinden bir yürütülebilir dosyayı döktüğünüzde, bazı başlıkları PE-bear kullanarak düzeltebilirsiniz.
Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini alın
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm** takip edin**.
- Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud github depolarına PR gönderin.