House of Rabbit
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
ファストビンのfdポインタまたはサイズを変更する能力: これは、ファストビン内のチャンクの前方ポインタまたはそのサイズを変更できることを意味します。
malloc_consolidate
をトリガーする能力: これは、大きなチャンクを割り当てるか、トップチャンクをマージすることで行うことができ、ヒープがチャンクを統合することを強制します。
オーバーラップするチャンクを作成する: 1つのチャンクが別のチャンクとオーバーラップするようにし、さらなるヒープ操作を可能にします。
偽のチャンクを作成する: ヒープ操作中にアロケータを騙して、偽のチャンクを正当なチャンクとして扱わせることです。
目的: ファストビンチャンクのサイズを操作してオーバーラップするチャンクを作成します。
ステップ 1: チャンクを割り当てる
We allocate two chunks of 0x40 bytes each. These chunks will be placed in the fast bin list once freed.
ステップ 2: チャンクを解放する
We free both chunks, adding them to the fastbin list.
ステップ 3: チャンクサイズの変更
We change the size metadata of chunk1
to 0xa1. This is a crucial step to trick the allocator during consolidation.
ステップ 4: malloc_consolidate
をトリガーする
大きなチャンクを割り当てると、malloc_consolidate
関数がトリガーされ、小さなチャンクがファストビンでマージされます。操作されたchunk1
のサイズにより、chunk1
がchunk2
と重なります。
統合後、chunk1
はchunk2
と重なり、さらなる悪用が可能になります。
fd
ポインタを変更する目的: ファストビンのfd
ポインタを操作してフェイクチャンクを作成します。
ステップ 1: チャンクを割り当てる
説明: 偽のチャンクのためにヒープを設定するために、1つは小さく、もう1つは大きい2つのチャンクを割り当てます。
ステップ 2: 偽のチャンクを作成
We write fake chunk metadata into chunk2
to simulate smaller chunks.
ステップ 3: chunk1
を解放する
説明: chunk1
を解放し、fastbinリストに追加します。
ステップ 4: chunk1
のfd
を変更する
説明: chunk1
の前方ポインタ(fd
)を変更して、chunk2
内の偽チャンクを指すようにします。
ステップ5: malloc_consolidate
をトリガーする
大きなチャンクを再度割り当てると、malloc_consolidate
がトリガーされ、偽のチャンクが処理されます。
偽のチャンクはファストビンリストの一部となり、さらなる悪用のための正当なチャンクとなります。
House of Rabbit技術は、ファストビンチャンクのサイズを変更してオーバーラップするチャンクを作成するか、fd
ポインタを操作して偽のチャンクを作成することを含みます。これにより、攻撃者はヒープ内に正当なチャンクを偽造し、さまざまな形態の悪用を可能にします。これらのステップを理解し、実践することで、ヒープの悪用スキルを向上させることができます。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)