Menjalankan binari ELF di OSX

11

Saya memiliki pertanyaan terkait KKP dan saya bertanya-tanya apakah seseorang dapat mengarahkan saya ke arah yang benar.

Saya bekerja di OSX Yosemite dan saya sedang melewati beberapa wargames dan tantangan CTF yang lebih lama. Tujuan saya adalah mengeksekusi biner ELF dari tantangan "secara asli" ke iterm saya (setelah saya scp secara lokal) meskipun saya menyadari bahwa hanya binari MACH yang dapat dieksekusi oleh sistem yang mendasarinya.

Namun demikian, mungkinkah hal seperti itu melalui emulasi mungkin (misalnya QEMU), atau metode lain, untuk menghindari pembukaan VM keseluruhan hanya untuk menjalankan biner?

Terima kasih sebelumnya.

nilminus
sumber
Masalah ini relevan dengan keamanan karena sebagian besar ditemukan di CTFs keamanan dan wargame (itulah sebabnya saya terjebak dalam hal ini). Saya percaya bahwa komunitas keamanan memiliki peluang lebih tinggi untuk menemukan topik khusus ini. Saya akan mencoba di sana juga.
nilminus
3
Pertanyaan Anda bukan tentang keamanan, ini tentang menjalankan binari.
Neil Smithline

Jawaban:

2

Dengan sendirinya, binari ELF tidak berarti apa-apa. Beberapa binari berjalan sendiri - Anda perlu mendukung perpustakaan, API dan ABI dan hal-hal mengkilap lainnya.

Saat menjalankan QEMU Anda masih membutuhkan sebagian besar OS - hanya saja itu tidak terikat erat dengan sistem host yang saya curigai.

Secara teori jika Anda memiliki sesuatu seperti 'anggur' tetapi bertindak sebagai linux (atau * nix syle OS lainnya) -> lapisan kompatibilitas OS X Anda bisa mendapatkan apa yang Anda inginkan, tetapi binatang seperti itu tidak ada.

JADI tidak, Anda tidak dapat menjalankan binary ELF arbiter, terkompilasi pada OS X

Journeyman Geek
sumber
1
pertanyaan ini berkaitan dengan skenario keamanan yang agak ceruk di ruang pengguna super. bayangkan biner statis (libs dikompilasi ke dalam gambar daripada secara dinamis terkait) bahwa penyerang ingin menempatkan pada sistem target dan menjalankan (itu adalah skenario permainan keamanan dasar CTF). tidak perlu lib eksternal, meskipun poin Anda tentang ABI (mis. syscalls) adalah adil. Anda benar dalam kasus umum, tetapi pertanyaan ini secara khusus bukan tentang kasus umum. Iho itu seharusnya tidak dipindahkan dari situs keamanan.
quixotic
2

Jawabannya mungkin: Tergantung pada bagaimana file ELF dihasilkan.

Berdasarkan artikel ini , dan kalimat ini:

  • Kesalahpahaman umum adalah bahwa file ELF hanya untuk executable ...
  • Kita sudah melihat mereka dapat digunakan untuk potongan parsial ...

Tidak semua file ELF akan dieksekusi, bahkan jika Anda memiliki pengaturan yang tepat.

Berdasarkan artikel ini , ada grup file pf ELF yang disebut FatELF:

  • FatELF adalah format file yang menyematkan banyak binari ELF untuk arsitektur yang berbeda ke dalam satu file
  • Kirimkan satu file yang berfungsi di Linux dan FreeBSD

Berdasarkan halaman ini dari Apple

  • Bagian BSD dari kernel OS X diturunkan terutama dari FreeBSD

Jadi, untuk Mac OS X, FatELF adalah "awal dari jawaban".

Dan akhirnya, berdasarkan halaman ini :

Pengonversi file objek

Utilitas ini dapat digunakan untuk mengonversi file objek antara format COFF / PE, OMF, ELF dan Mach-O untuk semua platform x86 32-bit dan 64-bit. Dapat memodifikasi nama simbol dalam file objek. Dapat membangun, memodifikasi, dan mengonversi fungsi perpustakaan di seluruh platform . Dapat membuang file objek dan file yang dapat dieksekusi. Juga termasuk disassembler yang sangat baik mendukung SSE4, AVX, AVX2, AVX512, FMA3, FMA4, XOP dan set instruksi Knights Corner. Termasuk kode sumber (GPL).

Anda memiliki kesempatan untuk mengaktifkan apa yang Anda inginkan.

PS: ada halaman lain tentang XBinary , saya tidak menganalisisnya.

Dokumen ini membahas XBinary, perangkat lunak baru yang memungkinkan Anda menambahkan dukungan level kernel untuk mengeksekusi file dalam format biner sewenang-wenang di Mac OS X

apagando_tudo
sumber