OSX'te ELF ikili dosyalarını yürütme


11

CTF ile ilgili bir sorum var ve birisinin beni doğru yöne yönlendirip yönlendiremeyeceğini merak ediyordum.

OSX Yosemite üzerinde çalışıyorum ve bazı savaş oyunlarından ve eski CTF zorluklarından geçiyordum. Amacım, altta yatan sistem tarafından yalnızca MACH ikili dosyalarının yürütülebileceğini fark etsem de, itermime (yerel olarak scp'den sonra) "doğal olarak" meydan okumanın ELF ikili dosyasını çalıştırmaktır.

Bununla birlikte, böyle bir şey emülasyon yoluyla (örneğin QEMU) veya başka bir yöntemle, sadece bir ikili çalıştırmak için tüm bir VM'yi açmaktan kaçınmak için mümkün mü?

Şimdiden teşekkür ederim.


Bu sorun, çoğunlukla güvenlik CTF'lerinde ve savaş oyunlarında (bu şekilde takılıp kaldığım) güvenlikle ilgilidir. Güvenlik camiasının bu konuya girme şansının daha yüksek olduğuna inanıyorum. Orada da olsa çalışacağız.
nilminus

3
Sorunuz güvenlikle ilgili değil, ikili dosya çalıştırmakla ilgilidir.
Neil Smithline

Yanıtlar:


2

Tek başına, ELF ikili dosyaları hiçbir şey ifade etmiyor. Birkaç ikili tek başına çalışır - Destekleyici kitaplıklara, API'lara, ABI'lere ve diğer parlak şeylere ihtiyacınız vardır.

QEMU'yu çalıştırırken hala işletim sisteminin çoğuna ihtiyacınız var - sadece şüphelendiğim ana sistemle yakından bağlı değil.

Teorik olarak 'şarap' ama bir linux (veya başka * Nix syle OS) olarak hareket gibi bir şey olsaydı -> OS X uyumluluk katmanı olabilir istediğini elde, ama böyle bir canavar yok.

Yani hayır, OS X'te önceden oluşturulmuş bir ARF ikili dosyası çalıştıramazsınız


1
bu soru, süper kullanıcı alanında oldukça uygun bir güvenlik senaryosuna ilişkindir. bir saldırganın hedef sisteme yerleştirmek ve çalıştırmak istediği statik bir ikili (görüntüye dinamik olarak bağlanmış kütüphaneler) düşünün (bu temel bir CTF güvenlik oyunu senaryosudur). ABI'ler (örn. syscalls) hakkındaki görüşünüz adil olsa da, dış kütüphanelere ihtiyaç duymaz. genel durumda haklısınız, ancak bu soru özellikle genel dava ile ilgili değil. imho güvenlik sitesinden taşınmamalıydı.
quixotic

2

Yanıt muhtemelen: ELF dosyasının nasıl oluşturulduğuna bağlıdır.

Bu makaleye ve şu cümleye dayanarak :

  • Yaygın bir yanlış anlama, ELF dosyalarının sadece yürütülebilir dosyalar için olmasıdır ...
  • Kısmi parçalar için kullanılabileceklerini gördük ...

Uygun bir kurulumunuz olsa bile, tüm ELF dosyaları yürütülmez.

Bu makaleye dayanarak, FatELF adlı bir grup pf ELF dosyası vardır:

  • FatELF, farklı mimariler için birden fazla ELF ikili dosyasını tek bir dosyaya gömen bir dosya biçimidir
  • Linux ve FreeBSD'de çalışan bir dosya gönderin

Apple'ın bu sayfasına dayanarak

  • OS X çekirdeğinin BSD kısmı öncelikle FreeBSD'den türetilir

Yani, Mac OS X için FatELF "cevabın başlangıcı" dır.

Ve son olarak, bu sayfaya dayanarak :

Nesne dosyası dönüştürücü

Bu yardımcı program, 32 bit ve 64 bit x86 platformlarının tümü için nesne dosyalarını COFF / PE, OMF, ELF ve Mach-O formatları arasında dönüştürmek için kullanılabilir . Nesne dosyalarındaki sembol adlarını değiştirebilir. Platformlar arasında işlev kitaplıkları oluşturabilir, değiştirebilir ve dönüştürebilirsiniz . Nesne dosyalarını ve yürütülebilir dosyaları dökebilir. Ayrıca SSE4, AVX, AVX2, AVX512, FMA3, FMA4, XOP ve Knights Corner talimat setlerini destekleyen çok iyi bir sökücü içerir. Kaynak kodu dahil (GPL).

İstediğinizi aktif hale getirme şansınız var.

PS: XBinary hakkında başka bir sayfa var , analiz etmedim.

Bu belgede, dosyaları Mac OS X'te rasgele ikili biçimlerde yürütmek için çekirdek düzeyinde destek eklemenizi sağlayan yeni bir yazılım olan XBinary açıklanmaktadır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.