본문 바로가기

보안

Basic Pentesting : SSH 를 활용한 권한 탈취

반응형

Basic Pentesting 2 문제 풀이 연결 편입니다.

 

이번에는 openssh 7.2p2 를 사용중인 서버의 root 권한을 탈취해보도록하겠습니다.

ssh는 사용자 이름을 열거하는 취약점을 가지고 있습니다.

이 취약점을 활용해 msfconsole 에서 공격대상 서버로 확인해보겠습니다.

msfconsole 에서 확인한 ssh '이름열거 취약점'

이 취약점을 사용하고, option 을 설정해줍니다.

RHOSTS 에는 공격 대상 서버 아이피를, USER_FILE 에는 공격대상 서버에 접근할 수 있는 사용자 계정(추측성 내용들..admin, root 이런.. )을 담은 파일이름을 작성해주었습니다.

그 다음 exploit  명령어를 통해 해당 서버에 대해 이름 열거 공격을 해보았습니다.

아래와 같이 3가지 계정을 발견할 수 있었습니다.

exploit 결

 

여기서 찾은 jan이라는 계정은 앞선 글에서 비밀번호를 탈취해낸 계정입니다.

jan 계정으로 해당 서버 ssh 접속을 한 후에 kay 의 디렉토리에서 .ssh 폴더까지 이동한 후 디렉토리 조회해보겠습니다.

아래와 같이 ssh key 인증 방식을 위한 파일들을 볼 수 있습니다.

ssh key 인증을 위한 파일들

SSH Server를 인증하는 방식에는 2가지가 존재합니다. 

첫번째는 비밀번호를 이용하는 것으로 id, pwd를 입력해서 접근하는 방식입니다.

두번째 방식은 ssh key를 이용해서 인증하는 방식으로 비밀번호 방식보다 안정적인 방법입니다.

key를 이용해서 인증하는 방법은 공개키(모두가 가질 수 있음), 개인키를 이용하고 있습니다.

 

만약 개인키에 접근이 가능하다면 위험이 발생할 수 있는데 공격 대상서버는 현재  group, other 사용자들도 개인키를 읽는 권한을 부여한 상황입니다.

(id_rsa 파일의 group, other 권한 r--)

id_rsa 파일을 열고 개인키를 복사해서 칼리 리눅스 서버에 저장해두겠습니다. (파일명: kaykey.txt)

그 다음 해당 파일을 이용해 공격대상 서버에 접근하려보니 위 그림과 같이 warning 이 발생했는데, 이는 개인키의 권한을 소유자만 가지고 있어야하기 때문입니다. 따라서 아래 그림과 같이 권한을 변경해줍니다.

권한을 변경한 이후에 다시 접속을 해보겠습니다. 이번에는 passphrase를 입력하라고 합니다.

passphrase 입력 요구

이는 ssh key 접속시에도 암호를 한번 더 입력하게 설정되어 발생하는 화면입니다.

이를 해결하기 위해 크래킹을 해보겠습니다.

john the reaper 제품의 일부

[RSA/DSA/EC/OpenSSH private key file]을 jtR 형식으로 변환하는 스크립트입니다.

joh the ripper는 오픈소스 암호 보안 감사 및 암호 복구 도구 입니다.

john 사용방법
john [option] [password file]

 

위와 같은 명령어를 통해 kay 계정의 ssh key 의 passphrase 값을 얻어 낼 수 있습니다.

반응형