감자 텃밭

ASLR 적용시 우회법 본문

System/Tips

ASLR 적용시 우회법

g2h 2021. 11. 11. 23:42

ASLR이란 특점 프로그램에서 스택, 힙, 공유라이브러리들의 메모리 주소를 랜덤화 즉 실행시킬 때 마다 주소값이 바뀌게 하는 메모리 보호 기법이다. 해당 기법이 걸려있을 때 우회 방법은 대표적으로 아래의 2가지 방법이다.

 

1. "A" 또는 "\x90" 사용

 - 더미값으로 불리며 프로그램에 아무런 영향을 끼치지 않고 eip를 다음 명령어로 넘김. 

그러므로 버퍼안에 더미값을 충분히 채워놓은 후 뒤쪽에 쉘코드를 삽입하여 프로그램이 랜덤한 주소로 리턴하거나 점프해도 더미값 안에 eip가 떨어질 확률을 높히는 것

여러개의 더미값 중 한군데에만 떨어져도 eip는 더미값을 타고 끝까지 가서 쉘코드를 실행시키기 때문

하지만 버퍼의 크기가 작으면 대량의 더미값을 넣을 공간이 부족할 수 있음.

 

2. 반복 실행

 - 더미값을 넣는 방식과 마찬가지로 확률을 높히는 방식이며, 원하는 주소가 매번 바뀌기에 지정 할 수 없어, 가능한 주소를 골라서 될때까지 계속 시도를 하다보면 랜덤의 특성상 언젠가는 해당주소에 걸릴 것임 더미값과 함께 사용하면 확률을 높일 수 있음.

 

 

 

출처 : https://satanel001.tistory.com/77

'System > Tips' 카테고리의 다른 글

Pwntools 사용법  (0) 2021.11.23
프로그램 섹션 헤더 보는 명령어  (0) 2021.11.14
RTL이란?  (0) 2021.05.29
메모리 보호 기법 해제  (0) 2021.05.24
/bin/sh 문자열을 찾는 소스코드  (0) 2021.05.24