Exploit-exercises Nebula level05 [ SSH key , tar ]

2017. 5. 30. 15:36SystemHacking/Neblua



 

Nebula level05 문제입니다


< 그림 5.1 >


flag05의 홈디렉토리를 보면 취약한 디렉토리 허가권이 있다고합니다


< 그림 5.2 >


바로 보이네요. 기타사용자도 읽고 실행시킬 수 있는 .backup/ 디렉토리가 보입니다.

해당 파일에 들어가보면 " backup-1907011.tgz " 압축파일이 보입니다. 해당 파일이 무엇인지 설명드리겠습니다.


 

  " 확장자 tgz " : tar.gz 

     - 여러개의 파일들을 하나로 묶은 후에 " gzip " 으로 압축한 파일입니다

 

  압축 or 압축해제 명령어

   압축파일 형식에는 대표적으로 " gzip " 과 " bzip2 " 가 있습니다

   #gzip [파일명]    => 파일명.gz / 원본파일은 삭제됨

   #gunzip [파일명] => 해당 파일명의 파일이 생성

   #bzip2 [파일명]    => 파일명.bzip2 / 원본파일은 삭제됨 / 압축효율 뛰어남

   #bunzip2 [파일명] => 해당 파일명의 파일이 생성

  

  " tar "

  명령어 " tar " 는 하나 혹은 여러개의 파일들을 하나로 묶는 명령어로 압축명령어와 함께 자주 쓰입니다

  " tar " 와 압축명령어가 함께 사용된 파일들은 [FileName].tar.gz or [FileName].tar.bzip2 이라는 파일명을 가집니다

  해당 확장자를 줄여서 .tar.gz 확장자는 " .tgz "가 되고 .tar.bzip2 는 " .tbz2 " 이 됩니다


  파일들을 압축하는 명령어

   #tar -zcvf FileName /tmp/*                /tmp/ 디렉토리의 모든파일을 하나로 압축한다 => .tgz

   #tar -jcvf FileName /tmp/*                /tmp/ 디렉토리의 모든파일을 하나로 압축한다 => .tbz2


  압축파일들을 압축해제하는 명령어

   #tar -zxvf FileName.tgz                         현재 파일경로에 압축을 해제합니다

   #tar -zxvf FileName.tgz -C /home/tmp/    /home/tmp/ 디렉토리에 압축을 해제합니다

   #tar -jxvf FileName.tbz2                         현재 파일경로에 압축을 해제합니다

   #tar -jxvf FileName.tba2 -C /home/tmp/   /home/tmp/ 디렉토리에 압축을 해제합니다


    옵션

        -v : 자세한 내용 출력 ( 필수사용 )

        -f : 파일명 뒤 확장자를 제시 ( 필수사용 )

        -z : gzip을 통한 압축 or 압축해제 할 때 선언

        -j : bzip2를 통한 압축 or 압축해제 할 때 선언

        -c : 압축시 선언

        -x : 압축해제시 선언 ( 필수사용 )

        -C : 압축해제할 디렉토리 설정시 선언



압축해제 명령어에 대한 설명은 충분한 것 같고 압축 해제된 파일들을 살펴보겠습니다


< 그림 5.3 >


처음 보는 파일들이 존재합니다. authorized_keys , id_rsa , id_rsa.pub 무슨 일을 하는 파일인지 찾아보았습니다

SSH key를 사용할 때 쓰는 파일들이였습니다. SSH key란 서버에 접속할 때 비밀번호 대신 key를 제출하는 방식입니다.

동작방식은 공개키와 비공개키를 생성하고 공개키는 원격서버에 비공개키는 로컬머신에 저장해두고 접속할 때 두 키를 비교합니다

각 파일들의 역할은 다음과 같습니다. ( 아직 제 수준으로 이해할 수 없는 내용입니다 )

id_rsa                     private key

id_rsa.pub               public key

authorized_keys id    rsa.pub값을 저장한다


하지만 SSH라는 로그인 방식으로 서버에 로그인 해보도록 하겠습니다

명령어는 $ssh flag05@localhost 입니다 ( ssh 계정명@서버IP주소 )


< 그림 5.4 >


$SSH 계정명@서버IP 명령어로 SSH접속시에는 해당 계정의 비밀번호가필요하짐나 SSH key방식은 비밀번호를 요구하지않습니다

flag05의 계정으로 아무런 비밀번호 없이 로그인 되었음을 확인 할 수 있습니다! 

level06으로 넘어갑니다.