mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
5.4 KiB
5.4 KiB
House of Einherjar
{% hint style="success" %}
AWS 해킹 학습 및 실습:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 학습 및 실습: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원
- 구독 요금제 확인!
- 💬 Discord 그룹 또는 텔레그램 그룹 참여 또는 트위터 🐦 @hacktricks_live** 팔로우**.
- HackTricks 및 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 해킹 요령 공유.
기본 정보
코드
- https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c에서 예제 확인
- 또는 https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation에서 확인 (tcache를 채워야 할 수도 있음)
목표
- 거의 모든 특정 주소에 메모리를 할당하는 것이 목표입니다.
요구 사항
- 청크를 할당하려는 경우 가짜 청크를 생성합니다.
- 포인터를 자신을 가리키도록 설정하여 무결성 검사를 우회합니다.
- 한 청크에서 다음 청크로의 널 바이트를 사용하여
PREV_INUSE
플래그를 수정합니다. - 오프 바이 널 오용된 청크의
prev_size
에 자신과 가짜 청크 사이의 차이를 표시합니다. - 가짜 청크 크기도 무결성 검사를 우회하기 위해 동일한 크기로 설정되어야 합니다.
- 이러한 청크를 구성하려면 힙 누수가 필요합니다.
공격
- 공격자가 제어하는 청크 내에
fd
및bk
로 가리키는 가짜 청크A
가 생성됩니다. - 다른 2개의 청크(
B
및C
)가 할당됩니다. B
에서 오프 바이 원을 악용하여prev in use
비트를 지우고prev_size
데이터를C
청크가 할당된 위치와 이전에 생성된 가짜A
청크 사이의 차이로 덮어씁니다.- 이
prev_size
및 가짜 청크A
의 크기는 체크를 우회하기 위해 동일해야 합니다. - 그런 다음, tcache가 채워집니다.
- 그런 다음,
C
가 해제되어 가짜 청크A
와 통합됩니다. - 그런 다음, 가짜
A
청크에서 시작하고B
청크를 포함하는 새로운 청크D
가 생성됩니다. - Einherjar의 집이 여기서 끝납니다.
- 이것은 fast bin 공격 또는 Tcache 독감으로 계속할 수 있습니다:
B
를 해제하여 fast bin / Tcache에 추가합니다.B
의fd
를 덮어쓰어D
청크를 악용하여 대상 주소를 가리키도록 만듭니다(이는B
를 포함하고 있기 때문에).- 그런 다음, 2개의 malloc이 수행되고 두 번째 malloc은 대상 주소를 할당하게 됩니다.
참고 자료 및 다른 예제
- https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c
- CTF https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_einherjar/#2016-seccon-tinypad
- 포인터를 해제한 후에는 널로 초기화되지 않으므로 여전히 데이터에 액세스할 수 있습니다. 따라서 정렬되지 않은 bin에 청크를 배치하고 해당 포인터가 포함하는 포인터(리브C 누출)를 누출한 다음 새 힙을 정렬되지 않은 bin에 배치하고 해당 포인터로부터 힙 주소를 누출합니다.
- baby-talk. DiceCTF 2024
strtok
에서 널 바이트 오버플로 버그.- House of Einherjar를 사용하여 중첩된 청크 상황을 얻고 Tcache 독감을 마침으로써 임의 쓰기 원시를 얻습니다.
{% hint style="success" %}
AWS 해킹 학습 및 실습:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 학습 및 실습: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원
- 구독 요금제 확인!
- 💬 Discord 그룹 또는 텔레그램 그룹 참여 또는 트위터 🐦 @hacktricks_live** 팔로우**.
- HackTricks 및 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 해킹 요령 공유.