WAR GAME/Nebula

[Exploit-Exercises: Nebula] level05 풀이

jir4vvit 2020. 6. 20. 14:51

환경설정 : iso 파일을 이용하여 서버를 연 후, cygwin을 이용하여 ssh로 서버에 접속함.

* level05

ID: level05

PW: level05

 

문제05

flag05 홈 디렉토리를 확인해라. 취약한 디렉터리 사용 권한을 찾을 수 있을 것이다.

이 level를 통과하려면 level05 계정으로 로그인해라. 파일은 /home/flag05에서 찾을 수 있다.

 

소스 코드는 따로 주어져 있지 않다.

 


문제를 바로 풀어보도록 하겠다.

문제에서 주어진 /home/flag05 아래 backup 폴더가 수상해보였다.

안에 살펴보니 .tar 형식의 파일을 gzip으로 압축한 파일인 .tgz 파일이 보였다.

 

 

tar 명령을 이용하여 압축을 풀려고 하니 권한이 없다고 떴다.

 

그래서 tmp 디렉터리로 복사를 시도했다.

 

 

/tmp로 복사를 해서 압축을 해제하려고 했으나 여기서도 권한이 없다고 뜬다.

자세히 보니까 .ssh 폴더를 생성하지 못한다고 한다. 그리고 RSA 공개키가 보이는 듯 하다.

 

여기서 구글링을 해보았다. 

RSA 공개키를 이용하여 SSH 접속을 하려면 ~/.ssh 디렉토리에 개인키(private key) 파일과 id_rsa.pub(public key) 파일이 있어야 한다.

공개키 파일은 외부에 공개하는 용도이고 개인키 파일만 잘 간직하고 있으면 된다고 한다. 

 

이제 서버에 접속하면서 public key인 id_rsa.pub(문제에서의 파일)을 서버 안에 저장해두어야 한다.

해당 서버의 home 디렉토리에 .ssh를 생성하고 그 안에 authrized_keys 파일을 만든다.

 

ssh 접속을 할 때 별도로 ID와 패스워드를 입력할 필요가 없다고 한다.

 

출처 : https://cpuu.postype.com/post/646318

 

 

그래서 tmp 폴더가 아닌 home 디렉터리에 복사해서 압축을 해제해보았다.

 

압축이 성공적으로 된 것을 확인하고 ssh 서버에 flag05 계정으로 접속해보았다.

 

flag05의 계정으로 접속이 성공적으로 되었고 getflag를 발동시켜 문제를 풀 수 있었다.