공부를 합니다.
공격기법 본문
면접 준비 하다가 알게된 공격기법 몇가지!
나중에 계속 추가하면서 공부하기!
1. RTL (리턴투라이브러리)
return address 에 libc 내의 함수를 덮어씌워 쉘코드 없이 exploit 하는것이다.
RTL 공격은 libc 라고 하는 공유 라이브러리 내의 함수로 리터나게 하여 프로그램의 실행흐름을 조작하는 공격이다.
/* 운영체제에 ASCII-Armor 보호기법이 적용되어 있다면 공격자가 라이브러리를
호출하는 공격을 한다 하더라도 NULL바이트가 삽입되게 되므로 쉽게 익스플롯 하지 못하게 된다.*/
2. RTL channing (pop pop)
RTL 공격을 연속적으로 일어나게 스택을 구성하여 공격하는 기법이다.
pop pop ret과 같은 명령어를 이용하여 스택의 인자 참조 영역을 지나치고 다음 함수주소로 이동,
연속적으로 함수를 호출할 수 있슴!
/* 예를들면 pop pop 전에 함수를 시스템으로 하면
시작인자 두개가 pop pop되고 실행하게 되는거! */
3. GOT overwirte // 갓주소를 다른함수로 덮으쓰는거
함수를 호출하려면 (PTL를 호출하려면) GOT 로 점프하는데 GOT에는 함수의 실제 주소가 쓰여있다.
첫번째 호출이라면 got은 함수의 주소를 가지고 있지 않고 PLT를 참조하게 된다.
PTL에서는 got으로 점프하게 되는데 got에 라이브러리에 존재하는 실제 함수의 주소가 쓰여있어서
이 함수를 호출하게된다.
/* 갓 오버라이트는 즉, 그 두번호출될때 got에 수행되려는 함수 주소를 바꿔서 그 함수가 실행되게
하는것이다.*/
4. UAF(유저 에프터 프리) //메모리얼록
malloc free
/* free를 선언해도 메모리에는 얼록한것이 남아있다. 연결고리만 끊어준샘!
그래서 다시 얼록을 선언하면 그 메모리에 연결을 해줌!*/
5. FSB(포맷스트링버그)
/* printf(buf) 하면 에프에스비..??
printf(%s", buf)*/