web-dev-qa-db-ja.com

悪意のあるペイロードに関連するアーキテクチャの依存関係の問題

私の質問は、悪用によってシェルを取得するために通常使用されるバックドア/バインド/リバースtcpペイロードに関連するアーキテクチャ上の制限に関するものです。

ターゲットボックスアーキテクチャ(x86、x64、ARMなど)が不明な状況。

  1. X64ペイロードはユーザーの介入なしにx86アーキテクチャで機能しますか?たとえば、Windowsは、実行可能ファイルを機能モードで実行するようにユーザーに促します。
  2. アーキテクチャの依存関係がないペイロード配信のソリューションはありますか?
  3. X86エンコーダーでx64ペイロードをエンコードすると、実行時に互換性の問題が発生しますか?

どんな助けでも大歓迎です!手動でテストするのではなく、ここで質問する時間を節約できるので、感謝しています。

4
Sh1nu11bi

1。 x64ペイロードはx86アーキテクチャで動作しますか

64ビットの実行可能ファイルはx86アーキテクチャでは機能しません。これは、アーキテクチャ間に2つの多くの違いがあるためです。アドレス空間の制限を超えて、存在しない64ビットレジスタがあります。関数のパラメーターはまったく異なる方法で処理されます。機械命令の動作は異なります。

Windows 64ビットには、x86プログラムをx64アーキテクチャで実行するための互換性を確保するための多くのコードが含まれていますが、これを利用するには実行可能ファイルを作成する必要があります。この場合、エクスプロイトは32ビットアプリケーションとして構築され、 WOW64 サブシステムを利用する必要があります。このサブシステムは、32ビットアプリケーションを実行するためのサンドボックスのようなものです。基本的に、実行のために32ビットシステムをエミュレートします。

2。アーキテクチャの依存関係がないペイロード配信のソリューションはありますか?

コンパイラは特定のアーキテクチャ用に構築されています。上で述べたように、アーキテクチャに依存しないコードには、ある程度のエミュレーションが必要です。たとえば、Javaは、仮想マシンを使用して複数のプラットフォームで実行します。これにはパフォーマンスが犠牲になります。

3。 x86エンコーダーでx64ペイロードをエンコードすると、実行時に互換性の問題が発生しますか?

X86エンコーダーが何であるかわかりません。 x64マシンコードをx86マシンコードに変換することを意味する場合は、最初にx86用にビルドする方がよいでしょう。それはほとんど同じことなので。

2
RoraΖ