본문 바로가기

여러가지

바이너리 파일 변조

KSIA 보안 강연회
대략적으로 정리한것.

Overflow 종류
– buffer overflow (RET를 덮어씌우는게 일반적)
– integer overflow
– etc…

1. 바이너리 분석
2. 취약점 탐색
3. 메모리 보호기법들 ( ASLR(address space layout randomization), nx,ssp,pie 등)

ASLR (Address Space Layout Randomization)
값들을 원래는 정적의 주소에 넣었으나, ASLR을 통해 값이 저장되는 주소를 랜덤화 시킴.

NX (dep w xor x)
쓰기권한과 실행권한이 동시에 있을 수 없다.
–> 지역변수에 쉘코드 넣고 스택에 넣어 실행시키는게 일반적인 방법이지만, 이 보호기법을 통해 익스플로잇을 막음

SSP (Stack Smashing Protector)
gcc 컴파일 옵션 뒤에 -fno-stack-smash 옵션을 주면 ssp가 걸리지 않은채로 컴파일.

PIE (Position Independent Executeable)
–> ASLR은 메모리에 랜덤을 걸어버리지만, PIE는 바이너리에도 랜덤을 걸어버림.
–> ASLR과 NX를 사용시 라이브러리 등은 사용하지 못함. (실행할때마다 메모리 주소가 바뀜)
–> 하지만 바이너리 자체에는 Random이 걸리지 않는데, 그 대비책이 PIE

checksec –file [filename]
적용된 메모리보호기법들 확인하는 명령어. [In linux]

프로그램이란?
단위 :
메모리 : 변수등..
코드 : 일반적으로 쓰이는 코드들
루틴 : 반복적으로 쓰이는 알고리즘(?) –> 잘 모르겠음
함수 : 함수 단위

gdb 로 열어보고, setsock,socket,bind 등의 함수를 사용된것을 알고 소켓프로그램 인것을 확인.
pork 라는 프로그램.

'여러가지' 카테고리의 다른 글

IIS php 삽질기  (0) 2015.01.11
모의해킹 - Backtrack5_r3 도구 정리3  (0) 2015.01.11
리눅스 설치시 오류날 때  (0) 2015.01.11
웹 응답에서 서버 정보 추출  (0) 2015.01.11
모의해킹 - Backtrack5_r3 도구 정리2  (0) 2015.01.11