4 KiB
AWS2Exec - .dtors & .fini_array
htARTE (HackTricks AWS Red Team 전문가)를 통해 **제로부터 영웅까지 AWS 해킹을 배우세요**!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 PDF로 다운로드하고 싶다면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 요령을 공유하세요.
.dtors
{% hint style="danger" %} 현재는 .dtors 섹션을 포함한 이진 파일을 찾기가 매우 이상합니다. {% endhint %}
소멸자는 프로그램이 종료되기 전에 실행되는 함수입니다 (main
함수가 반환된 후).
이러한 함수들의 주소는 이진 파일의 .dtors
섹션에 저장되어 있으며, 따라서 **__DTOR_END__
**에 쉘코드 주소를 쓰면 프로그램이 종료되기 전에 실행됩니다.
다음 명령을 사용하여 이 섹션의 주소를 가져옵니다:
objdump -s -j .dtors /exec
rabin -s /exec | grep “__DTOR”
일반적으로 DTOR 마커는 ffffffff
와 00000000
값 사이에 있습니다. 따라서 이 값만 보인다면 등록된 함수가 없다는 것을 의미합니다. 그래서 **00000000
**을 쉘코드의 주소로 덮어쓰세요.
{% hint style="warning" %} 물론, 나중에 호출하기 위해 쉘코드를 저장할 곳을 먼저 찾아야 합니다. {% endhint %}
.fini_array
이것은 프로그램이 종료되기 전에 호출되는 함수들이 포함된 구조입니다. **.dtors
**와 마찬가지로 주소로 점프하여 쉘코드를 호출하거나 취약점을 두 번째로 이용하기 위해 다시 main
으로 돌아가야 하는 경우에 흥미로울 수 있습니다.
objdump -s -j .fini_array ./greeting
./greeting: file format elf32-i386
Contents of section .fini_array:
8049934 a0850408
#Put your address in 0x8049934
주의하십시오. 이것은 영원한 루프를 생성하지 않습니다. 왜냐하면 main으로 돌아가면 canary가 감지하고, 스택의 끝이 손상될 수 있고 함수가 다시 호출되지 않을 수 있습니다. 따라서 이를 통해 취약점을 1번 더 실행할 수 있습니다.
{% hint style="danger" %}
Full Relro로 설정된 경우, 섹션 .fini_array
는 읽기 전용으로 만들어집니다.
{% endhint %}
htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 AWS 해킹을 배우세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 PDF로 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요.
- The PEASS Family를 발견하세요. 당사의 독점 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.