WWW2Exec - atexit()

제로부터 히어로가 되기까지 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team 전문가)!

HackTricks를 지원하는 다른 방법:

__atexit 구조체

요즘은 이를 악용하는 것이 매우 이상합니다!

**atexit()**은 매개변수로 전달된 다른 함수들에 대한 함수입니다. 이러한 함수들은 **exit()**를 실행하거나 main반환 시에 실행됩니다. 예를 들어 이러한 함수들 중 하나의 주소를 쉘코드를 가리키도록 수정할 수 있다면, 프로세스를 제어할 수 있지만, 현재 이 작업은 더 복잡해졌습니다. 현재 실행될 함수들의 주소는 여러 구조체 뒤에 숨겨져 있으며, 마지막으로 가리키는 주소는 함수들의 주소가 아니라 XOR로 암호화되고 임의의 키로 이동됩니다. 따라서 현재 이 공격 벡터는 적어도 x86x64_86에서는 매우 유용하지 않습니다. 암호화 함수는 **PTR_MANGLE**입니다. m68k, mips32, mips64, aarch64, arm, hppa와 같은 다른 아키텍처암호화 함수를 구현하지 않습니다. 왜냐하면 입력으로 받은 것과 동일한 값을 반환하기 때문입니다. 따라서 이러한 아키텍처는 이 벡터에 의해 공격당할 수 있습니다.

이 작동 방식에 대한 자세한 설명은 https://m101.github.io/binholic/2017/05/20/notes-on-abusing-exit-handlers.html에서 찾을 수 있습니다.

제로부터 히어로가 되기까지 AWS 해킹을 배우세요 htARTE (HackTricks AWS Red Team 전문가)!

HackTricks를 지원하는 다른 방법:

Last updated