One Gadget
기본 정보
One Gadget은 system 및 **"/bin/sh"**를 사용하는 대신 셸을 획득할 수 있게 해줍니다. One Gadget은 libc 라이브러리 내에서 셸을 획득할 수 있는 방법(execve("/bin/sh")
)을 단 하나의 주소로 찾아냅니다.
그러나 일반적으로 몇 가지 제약 조건이 있습니다. 가장 일반적이고 쉽게 피할 수 있는 제약 조건은 [rsp+0x30] == NULL
입니다. RSP 내의 값을 제어할 수 있기 때문에 더 많은 NULL 값을 보내 제약 조건을 피할 수 있습니다.
One Gadget이 가리키는 주소에는 libc
가 로드된 기본 주소를 더해야합니다.
One Gadget은 임의 쓰기 2 실행 기술에 큰 도움이 되며 ROP 체인을 간소화할 수 있습니다. 하나의 주소만 호출하면 되므로 (요구 사항을 충족시키는) ROP을 단순화할 수 있습니다.
ARM64
github 저장소는 ARM64를 지원한다고 언급하지만 Kali 2023.3의 libc에서 실행할 때 어떤 가젯도 찾지 못합니다.
Angry Gadget
github 저장소에서: OneGadget에서 영감을 받은 이 도구는 파이썬으로 작성되었으며 execve('/bin/sh', NULL, NULL)
를 실행하는 가젯에 대한 제약 조건을 테스트하기 위해 angr를 사용합니다. One Gadget에서 시도할 가젯이 부족하다면, Angry Gadget은 더 복잡한 제약 조건을 가진 가젯을 많이 제공합니다!
Last updated