return gadget 2

[Return Oriented Programming]

사용 배경과 목적 system 함수를 활용해 셸을 획득하고자 system 함수의 주소를 알고싶은데,프로그램에서 이 함수가 활용되지 않고, 심지어 ASLR 기법이 적용돼 있는 바람에 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등의 주소가 바뀐다면,우리는 좀더 먼길을 돌아 주소를 얻어야 한다.: 프로세스에서 libc가 매핑된 주소를 찾은 뒤,이 주소로부터 system 함수까지의 offset을 구해서,최종적으로 system 함수의 주소를 얻기 libc.so.6 라이브러리에는 system 함수 뿐 아니라 이 바이너리가 호출하는 read, puts, printf도 정의되어 있는데,라이브러리 파일은 메모리에 매핑될 때 전체가 매핑되므로, read, puts, printf 뿐만 아니라 system 함수도 ..

IT/시스템 보안 2024.03.15

[Return to Library]

이론  사용 배경과 목적  NX를 우회하여 실행 흐름을 조작하는 것이 RTL의 목적입니다.   NX가 적용되지 않은 경우:어떤 메모리 영역 (eg. 스택 영역)에 쓰기 권한과 실행 권한이 함께 있음 -> 셸코드 주입하여 Return address를 덮어 실행 흐름 조작 가능NX가 적용된 경우:실행될 때 각 메모리 영역에 필요한 권한만을 부여받음-> 일반적으로 셸코드가 주입되었던 위치인 스택 영역이 이젠 실행 권한이 없으므로, 위 방법이 불가해짐따라서, 우리가 직접 주입한 셸코드나, 바이너리에 존재하는 함수는 이젠 활용할 수 없게 됐으니 다른 방식을 찾아봐야 합니다.   원리  리턴 가젯을 활용하여 공유 라이브러리에 있는 함수를 호출하면 NX를 우회할 수 있습니다!  예를 들어, 우리가 현재의 실행 흐름을..

IT/시스템 보안 2024.03.12