OSXでのELFバイナリの実行


11

CTFに関する質問があり、誰かが私に正しい方向を示すことができるかどうか疑問に思っていました。

私はOSX Yosemiteで作業していて、いくつかのウォーゲームと古いCTFチャレンジを経験していました。私の目標は、チャレンジのELFバイナリを(ローカルでscpした後)itermに「ネイティブに」実行することですが、基盤となるシステムで実行できるのはMACHバイナリのみであることに気づきました。

それでも、バイナリを実行するためだけにVM全体を開くことを回避するために、エミュレーション(QEMUなど)またはその他の方法を使用して、そのようなことを行うことはできますか?

前もって感謝します。


この問題は主にセキュリティCTFとウォーゲームに見られるため、セキュリティに関連しています(それが私がこれにこだわった方法です)。セキュリティコミュニティは、この特定のトピックに遭遇する可能性が高いと思います。私もそこに挑戦します。
nilminus

3
あなたの質問はセキュリティについてではなく、バイナリを実行することについてです。
Neil Smithline、2015

回答:


2

ELFバイナリ自体は何も意味しません。単独で実行されるバイナリはほとんどありません。サポートライブラリ、API、ABI、その他の光沢のあるものが必要です。

QEMUを実行する場合でも、ほとんどのOSが必要です。それは、疑わしいホストシステムと密接に結びついていないためです。

理論的には、 'wine'のようなものがLinux(または他の* nix syle OS)として機能している場合-> OS X互換性レイヤーで必要なものを取得できます、そのような獣は存在しません。

いいえ、OS Xでは任意のプリコンパイル済みELFバイナリを実行できません。


1
この質問は、スーパーユーザーの領域ではかなりニッチなセキュリティシナリオに関するものです。攻撃者がターゲットシステムに配置して実行したい静的バイナリ(動的にリンクされるのではなく、イメージにコンパイルされたライブラリ)を想像してください(これは基本的なCTFセキュリティゲームシナリオです)。外部ライブラリは必要ありませんが、ABI(たとえば、syscalls)についてのあなたの意見は公平です。あなたは一般的なケースでは正しいですが、この質問は特に一般的なケースについてではありません。imhoそれはセキュリティサイトから移動されるべきではありませんでした。
quixotic

2

答えはおそらく:ELFファイルがどのように生成されたかに依存します。

この記事とこの文章に基づいて:

  • よくある誤解は、ELFファイルは実行可能ファイル専用であるということです...
  • 私たちはすでにそれらが部分的な部分に使用できることを見ました...

適切に設定されていても、すべてのELFファイルが実行されるわけではありません。

この記事に基づいて、FatELFと呼ばれるグループpf ELFファイルがあります。

  • FatELFは、異なるアーキテクチャの複数のELFバイナリを1つのファイルに埋め込むファイル形式です。
  • LinuxとFreeBSDで動作する1つのファイルを出荷する

アップルのこのページに基づく

  • OS XカーネルのBSD部分は、主にFreeBSDから派生しています

したがって、Mac OS Xの場合、FatELFは「答えの始まり」です。

そして最後に、このページに基づいて:

オブジェクトファイルコンバーター

このユーティリティは、すべての32ビットおよび64ビットx86プラットフォームのCOFF / PE、OMF、ELF、およびMach-O形式間でオブジェクトファイルを変換するために使用できます。オブジェクトファイル内のシンボル名を変更できます。プラットフォーム間で関数ライブラリを構築、変更、変換できます。オブジェクトファイルと実行可能ファイルをダンプできます。SSE4、AVX、AVX2、AVX512、FMA3、FMA4、XOPおよびKnights Corner命令セットをサポートする非常に優れた逆アセンブラも含まれています。ソースコードが含まれています(GPL)。

あなたが望むものをアクティブにする機会があります。

PS:XBinaryに関する別のページがあります。分析しませんでした。

このドキュメントでは、Mac OS Xで任意のバイナリ形式のファイルを実行するためのカーネルレベルのサポートを追加できる新しいソフトウェアであるXBinaryについて説明します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.