반응형

해커스쿨 ftz 문제풀이 / level4

level4의 문제로 level5의 패스워드를 찾는 문제입니다. 

level4의 홈디렉토리에 있는 hint 파일을 보면 아래와 같이 /etc/xinetd.d/에 백도어가 심어져 있다고 합니다. 

/etc/xinetd.d/ 디렉토리에 backdoor라는 파일이 있고, 이 파일의 내용을 보면 아래와 같습니다.

해당 설정에 대한 내용은 아래와 같습니다. 

중요한 부분은 user와 server입니다. 

finger 서비스에 의해 level5의 권한으로 /home/level4/tmp/backdoor 파일이 실행된다는 의미입니다. 

# service finger => 서비스의 이름입니다. 
# disable = no => 데몬을 비활성화하지 않는 것으로 데몬을 활성화하겠다는 것입니다. 
# flags = REUSE => 서비스 포트가 사용 중인 경우 포트의 재사용을 허가한다는 의미입니다. 
# socket_type = stream => TCP/IP 프로토콜입니다. 
# wait = no => 이미 서비스가 연결된 상태에서 다른 요청이 들어오면 기다리지 않고, 바로 응답합니다. 
# user = level5 => level5의 권한으로 실행됩니다. 
# server = /home/level4/tmp/backdoor => xinetd에 의해 실행될 데몬 파일입니다. 
# log_on_failure += USERID => 정상적인 기동에 실패한 경우 USERID를 로그에 기록합니다. 

/home/level4/tmp에 finger 서비스에 의해 실행되는 backdoor 프로그램을 만듭니다. 

backdoor 프로그램은 level5의 권한으로 실행되기 때문에, level5의 패스워드를 확인하기 위해 system call로 my-pass를 실행하도록 하면, level5의 패스워드를 출력할 것입니다. 

 

finger 서비스를 실행하면 아래와 같이 level5의 패스워드가 출력되는 것을 볼 수 있습니다.

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level06 - john the ripper

 

flag06 계정 증명은 기존 유닉스 시스템에서 왔다고 합니다. 

문제 힌트가 별로 없어서 약간 어려운 문제인 듯 합니다. 

 

/home/level06, /home/flag06 디렉토리에는 아무런 파일이 존재하지 않습니다. 

각 계정의 패스워드 정보가 들어 있는 /etc/passwd 파일의 내용을 보겠습니다. 

다른 계정과 달리 flag06의 두번째 필드인 패스워드 칸에는 x가 아닌 문자열로 있는 것을 볼 수 있습니다.

이는 /etc/shadow 파일에 비밀정보가 있는 것이 아니라 해시 함수로 암호화되어 해시 코드가 생성된 것을 알 수 있습니다. 이 내용을 가지고 패스워드를 찾기위해 john the ripper라는 툴을 사용하겠습니다.  

kali 리눅스에서 john the ripper tool을 제공하는데, 이 kali 리눅스에서 해당 툴을 이용해 보겠습니다. 

test.txt 라는 파일을 만들어서 flag06의 계정정보를 입력하엿습니다. 

그리고 john ./test.txt를 실행시켜 패스워드를 크래킹하였는데, 패스워드가 hello로 결과값을 출력하는 것을 볼 수 있습니다. 

flag06 계정에 접속하여 getflag 명령어로 해결되었음을 볼 수 있습니다.

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level05

 

/home/flag05 홈 디텍토리에서 권한이 약한 디렉토리를 찾는 문제입니다. 

ID/PW는 level05 / level05를 가지고 로그인합니다. 

 

/home/flag05 디렉토리로 가서 ls -al 명령어를 입력합니다. 

.backup 디렉토리가 있는데, 권한이 rwxr-xr-x 이기 때문에 접근이 가능합니다. 

이 디텍로리로 들어갑니다. 

.backup 디렉토리에는 tgz 압축파일이 있습니다. 

이 파일의 압축을 풀려고 할때, /home/flag05 디렉토리에서는 권한이 없어, 이 파일을 /home/level05 디렉토리로 복사하고 압축을 풉니다. 

압축을 풀어보면 .ssh/ 디렉토리에 3개의 ssh 관련 파일이 생성됩니다. 

 

ssh -i 명령어를 이용해 전달인자로 id_rsa 파일을 넣고, flag05 계정에 접속합니다.

그럼 아래와 같이 flag05 계정으로 접속됩니다. 

이때 getflag 명령어를 입력하면 이 문제가 해결됩니다.

반응형
반응형

exploit-exercises 문제풀이 / Nebula Level04

 

이번 문제는 token 파일을 읽어야 된다고 합니다. 

하지만, 그 코드는 읽을 수 있는 파일을 제한한다고 합니다.

우회하는 방법 찾아야 합니다. 

이 레벨을 수행하려면 비밀번호 level04를 사용하여 level04 계정으로 로그인합니다. 

이 레벨의 파일은 /home/flag04에서 찾을 수 있습니다.

 

코드는 아래와 같습니다. 

 

먼저 전달인자의 수를 점검합니다. 

그리고 두번째 전달인자에 token이라는 문자열이 있는 경우 프로그램을 종료시킵니다. 

그 두번째 전달인자에 대한 파일의 크기를 제한하고 있습니다. 

파일의 크기를 제한하는 것을 우회해야 됩니다. 

/home/flag04 디렉토리에 가보면 flag04라는 실행파일이 있고, token 파일이 있습니다. 

전달인자로 token을 넣어 flag04를 실행해보면 token에 접근할 수 없다고 합니다.  

이 token 파일의 이름을 변경하는 것이 안되기 때문에, 

이 token 파일을 가르키는 심볼릭 링크 파일을 만들도록 하겠습니다. 

이 심볼릭 링크 파일을 flag04 실행파일의 전달인자로 넣어보겠습니다. 

파일이 읽어 졌고, 파일 안에는 flag04의 암호가 출력됩니다. 

 

flag04 계정으로 접속하여, getflag로 이 문제가 해결된 것을 볼 수 있습니다.

반응형

+ Recent posts