fedora 원정대 core3 iron_golem -> dark_eyes
dark_eyes.c
sfp를 백업 해두었다가 오버플로우가 발생한 이후에 sfp를 원상복귀 시킨다.
sfp는 사용할 수 없고 ret를 조작 할 수 있다. hint에 RET sleding이 써있다.
RET sleding을 사용하여 스택영역을 벗어난 후에 execve함수를 실행하면 execve함수의 인자로 고정적인 문자열을 넣을 수 있다.그 문자열을 이용하여 쉘을 얻어본다.
간단하게 쉘을 얻을수 있는 프로그램을 작성하고 컴파일한다. 위의 dark_eyes의 권한으로 execve를 이용해 위의 쉘을 얻는 프로그램을 실행하면 쉘을 얻을 수 있다.
ret와 execve함수의 주소를 찾아본다.
execve
ret
ret sleding을 태워서 스택을 벗어난 후 execve를 실행하도록 코드를 작성한다.
./dark_eyes `python -c 'print "A"*268 + "\xfe\x82\x04\x08"*8 + "\x90\x54\x7a\x00"'`
이 코드를 돌리면 execve의 인자로 이상한 것이 들어가서 에러가 발생한다.
strace를 사용하여 execve의 인자로 들어가는 고정바이트를 찾을 수 있다.
strace ./dark_eyes `python -c 'print "A"*268 + "\xfe\x82\x04\x08"*8 + "\x90\x54\x7a\x00"'`
execve로 알수 없는 문자열이 들어간다. strace의 표준에러출력을 리다이렉션으로 저장하여 xxd를 사용하면 execve로 들어가는 문자열의 헥사값을 알 수 있다.
위의 쉘을 얻는 프로그램에 execve로 들어가는 문자열로 심볼릭 링크를 걸어주고 위의 쉘코드를 실행하면 쉘을 얻을 수 있다.
Categories
- programming (17)
- security (46)
- study (22)
- system (35)
Recent 7 Days Popular Posts
-
라이브러리 로딩 - ld.so.conf 라이브러리란 무엇인가? 프로그램에서 공통으로 사용할 수 있는 기능을 포함하고 있는 오브젝트 파일이다. 동적 라이브러리란 무엇인가? 프로그램을 컴파일하여 생성되는 바이너리에 포함하지 않고 바이너리가...
-
METASPLOIT 사용법 Metasploit 은 펄스크립트를 사용하는 침투테스트도구이다 . 1. METASPLOIT 경로 metasploit 은 Kali Linux 에 기본적으로 설치되어 있다 . Kali 기준으로 경로는...
-
프로그램은 실행하면서 많은 함수를 호출한다. 함수가 호출되고 호출받은 함수가 실행되려면 레지스터와 스택을 사용해야 한다. 버퍼오버플로우 공격을 공부하면서 호출된 함수가 어떻게 esp (스택을 관리하는 레지스터)를 백업하는지 어떻게 스택을 독립적으로 ...
-
1. SMC 초기화 - 컴퓨터 종료 - MacSafe 전원 아답타 연결 - 내장키보드의 왼쪽에 있는 shift + control + option 키와 power 키를 동시에 누름 - 눌렀던 키 모두를 동시에 놓음 - 컴퓨터를 킴 2. M...
-
IDA SHORTCUT ctrl + 1 : Quick view d : date Alt + a : ASCII string style Esc : back X : xref to Y : set function time (chang...




0 개의 댓글:
댓글 쓰기