wargame - system

    [Dreamhack] basic_exploitation_000 Write Up

    보호되어 있는 글입니다.

    [Dreamhack] Return Address Overwrite

    보호되어 있는 글입니다.

    [Dreamhack] exploit tech : Return Address Overwrite

    [Dreamhack] exploit tech : Return Address Overwrite

    드림핵을 기반으로 작성한 내용이다. 버퍼오버플로우에 대한 익스 테크이므로 아래의 글을 참고하면 좋다. [system][hacking] stack buffer overflow - 스택 버퍼 오버플로우 드림핵 내용을 기반으로 내 방식으로 이해한 내용을 정리했다. (잘못된 내용이 있다면 댓글로 알려주세요..!) 스택 버퍼 오버플로우 스택의 버퍼에서 발생하는 오버플로우 버퍼 데이터가 목적지 3omh4.tistory.com 예제 코드 // Name: rao.c // Compile: gcc -o rao rao.c -fno-stack-protector -no-pie #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } ..

    [FTZ] 해커스쿨 FTZ Level5 - Write Up

    [FTZ] 해커스쿨 FTZ Level5 - Write Up

    접속 정보 ID : level5 PW : level4의 결과 내가 푼 방법 이번에도 level6권한의 파일이 있는지 찾아본다. 존재한다! 이제 힌트를 확인해본다. 힌트를 통해 /usr/bin/level5 프로그램이 /tmp 디렉토리에 level5.tmp라는 임시파일을 생성하는 것을 알 수 있다. 이제 해당 프로그램을 실행 후 /tmp 디렉토리에 level5.tmp파일이 생성되는지 확인해본다. 아무런 변화도 없다. 임시파일이라 /usr/bin/level5 프로그램의 실행이 끝나면 사라지는 것으로 보인다. 이제 level5.tmp의 내용을 확인해야되는데, 이를 위해 level5.tmp를 /tmp 디렉토리에 생성했다. 만약 /tmp 디렉토리에 같은 이름의 파일이 있다면 해당 파일의 내용을 덮어쓰지 않을까 라고..

    [FTZ] 해커스쿨 FTZ level4 - Write Up

    [FTZ] 해커스쿨 FTZ level4 - Write Up

    접속 정보 ID : level4 PW : level3 결과 (suck my brain) 문제 해결 앞의 level들 처럼 level5의 권한으로 쉘명령을 실행해 level5의 비밀번호를 알아내면 될 것이라 생각해서 앞의 문제들처럼 setuid가 level5로 설정된 파일을 찾아봤다. 하지만 아무것도 나오지 않아 바로 hint를 출력해봤다. 백도어?? 백도어란 시스템에 비인가적인 접근을 시도하는 프로그램을 의미한다. 즉, 정상적인 인증 과정을 거치지 않고 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 뒷구녕같은 개념이다. 여태 setUID로 다음 레벨의 쉘명령을 실행하던 것도 백도어의 개념으로 볼 수 있다. 넓은 의미에서 익스플로잇을 뜻하기도 한다고 한다. 권한없는 쉘을 따는 것이라 이해하면 될 ..

    [FTZ] 해커스쿨 FTZ level3 - Write Up

    [FTZ] 해커스쿨 FTZ level3 - Write Up

    접속 정보 ID : level3 PW : (level2의 결과) 문제 해결 과정 우선 level1과 level2를 해보면서 전체적으로 현재의 레벨에서 다음 레벨 권한의 쉘을 획득해 비밀번호를 알아내는 방식으로 파악했다. 그래서 이번엔 힌트를 먼저 보지 않고 해보기로 했다. 앞에서의 방식처럼 우선 setuid가 level4권한으로 설정된 파일을 찾아본다. find / -perm -4000 -user level4 2> /dev/null 역시나 존재한다. 이 실행파일을 실행해본다. 이제 이게 어떤 파일인지 파악해보려 했으나 방법을 잘 모르겠다. 이제 힌트를 볼 차례이다. #include #include #include int main(int argc, char **argv){ char cmd[100]; if(..

    [FTZ] 해커스쿨 Level2 - Write Up

    [FTZ] 해커스쿨 Level2 - Write Up

    접속정보 ID : level2 PW : (level1을 해결하면 level2에 대한 비밀번호를 알 수 있음) level1과 마찬가지로 접속을 하면 현재 위치가 /home/level2이고, hint 파일이 존재하는 것을 알 수 있다. 텍스트 에디터 중 vi에디터의 경우 명령모드가 있어 쉘 명령을 실행시킬 수 있다. 힌트와 level1의 풀이 과정을 통해 생각해보면, level3권한의 에디터를 실행시켜 level3의 쉘을 실행하고, level3의 비밀번호를 알아내야한다. 그럼 이제 level1에서 했던 것처럼 level3권한을 가진 파일을 먼저 찾아본다. find / -perm -4000 -user level3 2> /dev/null 역시 하나의 파일이 뜬다. 해당 파일은 실행파일이므로 실행해본다. 실행해보..

    [FTZ] 해커스쿨 Level1 - Write Up

    [FTZ] 해커스쿨 Level1 - Write Up

    문제 접속 ID/PW ID : level1 PW : level1 FTZ Level1 문제에 접속을 해 현재 경로와 어떤 파일들이 있는지 확인한다. hint 파일이 있으니 내용을 확인해보자. setuid가 걸린 파일을 찾기 위해 find명령어와 권한관련 옵션인 -perm을 이용하고, 파일소유자관련 옵션인 -user를 이용한다. 권한이 4000이라는 것은 특수권한자리에 setuid가 설정되어있다는 것을 의미한다. find / -perm -4000 -user level2 그럼 아래와 같이 권한없는 파일에 대한 error들이 나열된다. 이런 error들로 원하는 결과가 잘 안보이므로 아래와 같은 명령어로 error들을 날려준다. find / -perm -4000 -user level2 2> /dev/null 2..

    [Dreamhack] shell_basic

    보호되어 있는 글입니다.