Free Training Zone level13 풀이 1. cat 명령을 사용하여 hint 출력 코드를 살펴 보면 i 에 0x1234567이 유지되도록 하고 buf의 오버플로우를 이용해 return 주소에 접근하여 shell code를 실행시키면 level14 권한의 shell에 접근이 가능해 보인다. 2. 쓰기 권한이 있는 tmp 디렉터리로 이동 3. gdb 분석 위 gdb disassembler 코드를 스택으로 표현하면 아래와 같다. 4. shell code 환경변수 등록 및 주소 찾기 위와 같이 환경변수에 shell code를 등록한 후 아래와 같이 주소를 찾는 코드를 작성하여 확인한다. 5. 페이로드 코드작성 위 스택상태를 근거로 아래와같이 페이로드 코드를 작성하여 level14 Password를..
Free Training Zone level12 풀이 1. cat 명령을 사용하여 hint 출력 2. attackme 파일 tmp 디렉터리로 복사 쓰기 권한이 있는 tmp 디렉터리로 이동하여 attackme 파일을 gdb 로 분석한다. 3. gdb 분석 hint 에서 언급한 코드에서 str[256] 은 위 빨간 박스에서 할당된다. 할당은 264만큼 받았음으로 dummy가 8byte 존재하게된다. 스택 구조를 그려보면 아래와 같다. 4. shell code 환경변수 등록 및 shell code 주소 찾기 41byte shell code는 아래와 같다. \x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46 \xcd\x80\x31\xc0\x50\x68\x2f\x..
Free Training Zone level11 풀이 1. cat 명령을 사용하여 hint 출력 2. attackme 파일 tmp 디렉터리로 복사 쓰기 권한이 있는 tmp 디렉터리로 이동하여 attackme 파일을 gdb 로 분석한다. 3. gdb 분석 hint 에서 언급한 코드에서 str[256] 은 위 빨간 박스에서 할당된다. 할당은 264만큼 받았음으로 dummy가 8byte 존재하게된다. 스택 구조를 그려보면 아래와 같다. 4. shell code 환경변수 등록 및 shell code 주소 찾기 41byte shell code는 아래와 같다. \x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46 \xcd\x80\x31\xc0\x50\x68\x2f\x..
Free Training Zone level9 풀이 1. cat를 사용하여 hint 출력 2. bof 코드 작성 및 컴파일 usr/bin/bof 에 다한 권한이 없음으로 tmp 디렉터리에 hint와 같은 코드를 작성하여 컴파일 하였다. 3. gdb를 이용한 disassmbly 디버깅 - gdb 명령 - main function eax, [ebp-40] 은 buf의 시작 주소가 되고 eax, [ebp-24]는 buf2의 시작 주소가 된다. 40 - 24 = 16으로 buf 이후 dummy가 16byte 존재한다. 아래와 같이 python 을 이용하여 16byte 값을 "A"로 채워준뒤 "go"를 입력하면 오버플로우가 발생하여 buf2에 "go"가 들어가게 된다.
Free Training Zone level8 풀이 1. cat 명령을 사용하여 hint 출력 2. find 파일 사이즈 옵션으로 파일 찾기 size 옵션에 2700c 에서 c는 byte 단위를 의미한다. (b: 블록단위, c: byte, k: kbyte, w: 2byte 워드) find명령 리스트중 의심되는 파일을 분석해보니 정확하게 2700사이즈로 나온다. 3. found.txt 출력 found.txt 를 출력해보면 hash로 암호화된 level9 passwd 정보가 출력된다. 4. password crecker 설치 John the Ripper password cracker John the Ripper password cracker John the Ripper is a fast password cr..
Free Training Zone level7 풀이 1. 문제 오류 수정 hint에서 제시하는 /bin/level7 명령을 실행하면 출력되는 /bin/wrong.txt 파일이 미첨부 되어있음으로 root 권한 (pw:hackerschool)으로 접속하여 다음과 같이 /bin/wrong.txt 파일을 작성해서 저장한다. 2. cat 명령을 사용하여 hint 출력 3. 문제 풀이 "-" 를 1로 간주하고 "_"를 0으로 간주하여 2진수로 작성 한후 16진수로 변환하면 0x6D, 0x61, 0x74, 0x65가 된다. 위 값을 아스키코드로 문자로 변환시에 mate라는 password가 나온다.