ftz
-
[FTZ]해커스쿨(HackerSchool) LEVEL11 풀이(Solution)미사용/##Security 2015. 8. 15. 01:17
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL11 [그림 1] hint 파일을 열어 attackme 프로그램의 소스를 확인 해 보면 main 함수에서 argv 값을 전달받아 str 배열에 복사하는 것을 확인할 수 있다. [그림 2] gdb를 이용해 attackme를 열어보면 sub esp, 0x108 즉 264byte 만큼 메모리 공간을 할당한다. 그리고 strcpy 함수 부분을 보면 [ebp-264]를 인자로 전달을 하는데 이게 곳 str 배열의 시작 주소라는 것을 확인할 수 있다. [그림 3] call strcpy를 하기 직전 stack을 간단하게 그려보면 [그림 3]과 같이 나타내지는데 strcpy 함수로 전달되는 인자값 중에 [ebp+12] ..
-
[FTZ]해커스쿨(HackerSchool) LEVEL10 풀이(Solution)미사용/##Security 2015. 7. 28. 14:49
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL10 [그림 1] level10의 hint 를 확인 해 보면 공유 메모리에 두 사람이 대화한 내용이 기록되어 있는 것을 확인 할 수 있다. 우선 공유 메모리에 대해서 알아야 하는데 공유 메모리란 기존 프로세스가 독립된 메모리 공간을 할당 받고 다른 프로세스의 메모리 공간은 접근이 불가능 한데 반해 메모리 공간을 여러 프로세스가 함께 접근해서 데이터를 공유할 수 있는 공간을 말한다. sys/ipc.h 와 sys/shm.h 두 개의 헤더 파일이 필요하며 shmget() 함수는 임의의 key를 인자로 전달하면 해당 key 값에 대해 공유 메모리를 만들게 된다. 정상적으로 할당이 되면 공유 메모리에 대한 식별자 ..
-
[FTZ]해커스쿨(HackerSchool) LEVEL9 풀이(Solution)미사용/##Security 2015. 7. 28. 14:47
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL9 [그림 1] level9의 hint 를 보면 [그림 1] 과 같이 /usr/bin/bof 프로그램의 소스 코드가 있다. 소스 코드를 보면 buf2와 bof 배열이 각각 10칸씩 선언이 되어있고, fgets 로 40byte 만큼 buf 배열에 입력받는다. 입력받는건 buf지만 strncmp 로 비교하는 배열은 buf2 인걸 보니 버퍼 오버플로우를 이용해서 buf2에 "go" 라는 문자열이 저장되도록 해야 하는 것 같다. [그림 2] gdb 를 이용해서 buf 배열에 할당 된 공간을 확인하려 했으나 허가 거부가 되었다. 이유를 보니 /usr/bin/bof 에 권한이 그룹에 포함된 계정의 경우 실행 권한만 ..
-
[FTZ]해커스쿨(HackerSchool) LEVEL8 풀이(Solution)미사용/##Security 2015. 7. 28. 14:47
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL8 [그림 1] level8 계정의 hint 를 열어보면 level9 계정의 shadow 파일 정보가 서버 어딘가에 있는데 용량이 2700 이라고 한다. [그림 2] 그래서 일단 서버에서 파일 용량이 2700인 파일들을 찾아보기로 했다. 이 때 주의해야할 점은 find의 size 옵션으로 검색시 용량과 함께 용량 단위도 같이 적어주어야 한다. 2700b - 2700블록 (512kbyte 블록 단위) 2700c – 2700byte 2700k – 2700kbyte 2700w – 2700word (2byte 단위) 로 나뉘는데 단순히 2700 만 쓴다면 기본값으로 2700b 로 검색이 된다. 나는 정확히는 모르..
-
[FTZ]해커스쿨(HackerSchool) LEVEL7 풀이(Solution)미사용/##Security 2015. 7. 28. 14:46
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL7 [그림 1] hint 를 열어보면 [그림 1]과 같이 출력이 되는데 일단 /bin/level7 를 실행시켜 봐야 알 수 있을 것 같았다. [그림 2] Insert The Password 에서 비밀번호를 입력하라고 해서 아무거나 입력 했더니 [그림 2]와 같이 출력이 되었다. 가장 아랫줄에 보면 모스 부모같은 기호가 뜨는데 앞에 hint 에서 2진수를 10진수로 바꾸라는 말을 보고 유추해 보면 아마 저 기호는 2진수를 나타낸 것이라는 것을 추측할 수 있다. (-)기호는 1 (_) 는 0이라고 생각하고 2진수를 만든 다음, 띄어쓰기를 기준으로 잘라서 ASCII 코드표를 보고 문자로 변환을 시켜 보았다. [..
-
[FTZ]해커스쿨(HackerSchool) LEVEL6 풀이(Solution)미사용/##Security 2015. 7. 28. 14:45
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL6 [그림 1] level6으로 접속하자마자 [그림 1]과 같은 화면이 출력이 되었다. 인포샵 bbs에 대해 모르기도 하고, 인포샵 bbs를 검색하면 검색 결과 거의 대부분이 해커스쿨 level6 문제 풀이라 일단은 그냥 진행해 보기로 했다. [그림 2] 그냥 엔터를 치면 [그림 2]와 같은 화면이 출력이 되는데 그냥 아무 숫자나 입력하고 엔터 키를 눌렀다. [그림 3] 그러니 특정 IP 로 접속을 시도하는데 접속이 제대로 되지 않아 종료시키기 위해 Ctrl+C 를 눌렀다. [그림 4] 그러니 level6의 계정으로 계정이 떨어지고 ls 명령어를 쳐보니 password 파일이 있고 그 파일에는 level7..
-
[FTZ]해커스쿨(HackerSchool) LEVEL5 풀이(Solution)미사용/##Security 2015. 7. 28. 14:44
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL5 [그림 1] level5 의 hint 를 보면 /ur/bin/level5 를 실행하면 /tmp 에 level5.tmp 라는 파일이 생성 된다고 한다. [그림 2] /usr/bin/level5 를 실행 시키고 /tmp 디렉토리를 확인해 보면 hint와 다르게 파일이 생성되지 않았는데 아마 잠시 생성 됬다가 바로 삭제가 되도록 프로그래밍이 된 것 같다. [그림 3] [그림 4] level5는 레이스 컨디션을 이용해야 하는 것 같아서 두 개의 프로그램을 코딩을 했는데 [그림 3]은 반복해서 /usr/bin/level5 를 실행하는 프로그램이고, [그림 4]는 /tmp/level5.tmp 를 반복해서 복사해오..
-
[FTZ]해커스쿨(HackerSchool) LEVEL4 풀이(Solution)미사용/##Security 2015. 7. 28. 14:43
HackerSchool FTZ WARGAME Solution Start : 15.07.03 LEVEL4 [그림 1] level4의 hint를 확인해보면 /etc/xinetd.d/ 에 백도어를 심어놓았다고 한다. [그림 2] 해당 경로에 가보면 그냥 'backdoor' 라는 이름의 파일이 있는 것을 확인할 수 있다. [그릠 3] backdoor 파일의 내용을 확인 해 보면 [그림 3]과 같이 출력이 되는데 이를 가지고 알 수 있는 것은 backdoor 라는 파일은 finger 서비스 파일이며, 현재 서비스 중이라는 것이다. 좀 더 자세히 설정을 분석해보자. disable = no // 현재 서비스 중이다. socket_type = stream // TCP 로 통신을 한다. wait = no // 서비스 요..