House of Einherjar

AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

基本情報

コード

ゴール

  • ほぼ任意の特定のアドレスにメモリを割り当てることです。

必要条件

  • チャンクを割り当てるときに偽のチャンクを作成します:

  • サニティチェックをバイパスするためにポインタを自分自身を指すように設定します

  • 1つのチャンクからもう1つのチャンクへのオフバイワンを悪用して、前に使用されたものを変更します

  • オフバイワンを悪用したチャンクのprev_sizeに、自身と偽のチャンクの間の差を示します

  • 偽のチャンクのサイズもサニティチェックをバイパスするために同じサイズに設定されている必要があります

  • これらのチャンクを構築するには、ヒープリークが必要です。

攻撃

  • 攻撃者が制御するチャンク内に偽のチャンクが作成され、fdbkが元のチャンクを指すようにして保護をバイパスします

  • 他の2つのチャンク(BC)が割り当てられます

  • Bのオフバイワンを悪用して、prev in useビットがクリアされ、prev_sizeデータがCチャンクが割り当てられた場所から前に生成された偽のAチャンクまでの差で上書きされます

  • このprev_sizeと偽のチャンクAのサイズは、チェックをバイパスするために同じである必要があります。

  • 次に、tcacheが埋められます

  • 次に、Cが解放され、偽のチャンクAと統合されます

  • 次に、偽のAチャンクで始まり、Bチャンクをカバーする新しいチャンクDが作成されます

  • Einherjarのハウスはここで終わります

  • これはファストビン攻撃で続けることができます:

  • Bを解放してファストビンに追加します

  • Bfdを上書きして、Dチャンクを悪用してターゲットアドレスを指すようにします(Bを含んでいるため)

  • 次に、2つのmallocが行われ、2番目のmallocがターゲットアドレスを割り当てることになります

参考文献と他の例

Last updated