상세 컨텐츠

본문 제목

[FC4] 환경요약

SYSTEM HACKING/LOB Fedora Core

by koharin 2019. 7. 13. 20:27

본문

728x90
반응형

Fedora Core 4에서는 Fedora Core 3 환경에서 몇 가지 추가되었다.

 

Stack Dummy O

 

=> stack에 dummy가 붙는다. gdb로 SFP까지의 거리를 알아야 한다.

 

Down privileage of bash O

 

Random Library O

 

=> ASLR 보호 기법 관련. 

 

Random Stack O

 

=> ASLR 보호 기법: 스택, , 라이브러리 등의 주소를 랜덤하게 배치해 target addr 예측 어려 움.

프로그램이 실행될 때마다 주소가 바뀜.

 

ASCII Armor O

 

ASCII Armor: 공유 라이브러리 주소에서 최상위 바이트가 0x00인 메모리 영역

 

Libc address는 공유라이브러리의 주소 값을 의미하는데,

Fedora Core에서는 16M 미만이므로 첫 바이트에 0x00이 들어가 인자값을 못 넣음.

(LOB Red Hat 9에서는 이 주소가 16M 이상으로 4바이트 최상 위 1바이트 주소값이 0x00이 아니어서 인자 값을 변조된 RET 뒤쪽에 넣을 수 있었는데 이제는 못 하게 됨.)

16MB = 16777216 byte = 16진수 0x1000000

16MB 미만이므로 공유라이브러리의 주소값이 0x00FFFFFF보다 작음.

=> RTL 공격 시 연속적인 payload 작성 X (NULL 바이트가 삽입되어 payload가 끊김)

 

Non-Executable Stack O 비실행 스택

=> NX Bit/DEP: 공격자가 heap, stack, library 영역에서 shellcode를 저장해서 실행하기 위해서 는 해당 영역에 실행권한이 있어야 하는데, DEP가 적용된 경우 실행권한이 없어서 shellcode가 실행되지 않음.

프로그램에서 해당 동작을 예외처리 후 프로세스 종료 됨.

메모리 영역 중 stack 영역에서 코드를 명령어로 실행하지 못하게 하는 패치.

버퍼나 환경변수 등에서 쉘코드 실행 안 됨.

 

$ cat /proc/self/maps 실행권한 확인

/proc process 줄임말로, 이 디렉터리로 프로세스의 정보 저장

/proc/self 현재 실행되고 있는 프로세스의 정보가 담긴 디렉터리

/proc/self/maps 현재 실행되고 있는 프로세스의 주소맵

 

Non-Executable heap O 비실행 힙

=> NX Bit/DEP

Heap 영역에 있는 코드를 명령어로 실행하지 못하게 하는 패치.

Heap 상에서 코드 실행 불가능

 

library 함수가 인자를 참조할 때 ebp를 사용하지 않는다.

=> 함수의 인자 참조 방식이 EBP에서 ESP로 바뀌었다.

 

fgets 함수의 임시 버퍼 주소가 random이다.

=> 지난 FC3에서 fgets 함수로 입력받을 경우 stdin 임시 버퍼의 주소가 고정적이라서 이 영역의 주소값에 원하는 값을 넣었었는데, 이번 FC4에서는 이 stdin 임시 버퍼의 주소가 random이라서 이 방법도 사용하지 못할 것이다.

728x90
반응형

'SYSTEM HACKING > LOB Fedora Core' 카테고리의 다른 글

[FC4] dark_stone -> cruel  (0) 2019.07.14
[FC4] Fedora Core 4 에서의 RTL 기법  (0) 2019.07.14
[FC3] dark_stone  (0) 2019.07.12
[FC3] evil_wizard -> dark_stone  (0) 2019.07.12
[FC3] hell_fire -> evil_wizard  (0) 2019.07.12

관련글 더보기