반응형

exploit-exercises 문제풀이 / Nebula Level03

 

ID/PW : level03 / level03

문제 : flag03 권한으로 getflag 실행을 시켜야 합니다.

 

/home/flag03에 들어가 보면 writable.d 디렉토리랑 writable.sh 파일이 있습니다. 

writable.sh 내용을 보면 /home/flag03/writable.d/ 디렉토리에 있는 스크립트 파일을 bash -x로 실행시킵니다.

/home/flag03/writable.d/ 디렉토리에 test.sh 파일을 만들어 실행하도록 하였습니다. 

test.sh 파일 안에는 getflag를 실행하도록 하였고, 그에 대한 결과는 /tmp/test.txt에 출력하도록 하였습니다.

이제 writable.sh를 실행해보겠습니다.

그럼 /tmp/test.txt 파일이 생겼고, 이 파일을 보면 getflag를 실행한 것으로 볼 수 있습니다.

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level02

 

ID/PW : level02 / level02 

문제 : flag02 권한으로 getflag를 실행시켜야 합니다. 

 

 

아래 코드를 보시면, 

level1.c와 유사한 것을 볼 수 있고,

마지막에 buffer에 있는 내용을 system 함수를 호출하고 있습니다. 

 

/bin/echo라는 명령어가 지정되어 있기 때문에, %s 값인 getenv("USER") 값에 flag01 권한으로 bash가 실행되도록 하면 될 듯 합니다. 

$USER의 값을 보면 level02가 출력됩니다. 

$USER의 값을 바꾸어 보겠습니다. 

USER 값에 "abc;/bin/bash;"를 넣었습니다. 

따옴표를 넣지 않으면 USER에는 abc만 들어가고 /bin/bash가 실행될 것입니다. 

이제 flag02를 실행해봅니다. 

그러면 flag02 권한을 획득했고, getflag를 실행시킬 수 있습니다.

반응형
반응형

overthewire.org 문제 풀이 / Leviathan Level 1 → Level 2

 

Host: leviathan.labs.overthewire.org
Port: 2223

ID : leviathan1

PW => 이전 레벨 문제 확인하시면 됩니다. 

 

leviathan1에 접속해서 ls 명령어를 입력하면 check라는 파일이 있습니다. 

이 파일은 setuid가 걸려있고, leviathan2의 권한을 가지고 있습니다. 

이 파일을 실행해 보도록 하겠습니다.

암호를 입력하는 프로그램입니다. 

암호를 알아야 하는데, ltrace라는 명령어를 이용해 실행과정을 추적해 보겠습니다.

password를 abc로 입력했는데, strcmp 함수에서 실제 password와 비교하고 있습니다. 

이제 실제 password를 알았기 때문에 이 문구를 입력해보겠습니다. 

password가 맞았습니다. 

이제 leviathan2을 권한을 가진 상태에서 shell을 사용할 수 있기 때문에,

leviathan2의 패스워드 파일을 확인할 수 있습니다.

반응형
반응형

overthewire.org 문제 풀이 / Leviathan Level 0 → Level 1

 

Username/Password를 leviathan0으로 입력하면, Level 0 -> Level 1가 진행됩니다. 

하지만 Level 0 -> Level 1 문제를 풀기위한 어떠한 정보는 없다고 합니다. 

 

ls -al 명령어를 사용하면, .backup 디렉토리가 있습니다. 

이 폴더가 의심스럽기 때문에 디렉토리에 들어가 파일을 확인해 보겠습니다. 

이 파일을 보면 아주 많은 코드가 보입니다. 

 

이 파일에 leviathan 문자가 있는지 검색해 보겠습니다. 

그랬더니 leviathan1의 패스워드가 있는 것을 볼 수 있습니다.

반응형

+ Recent posts