티스토리 뷰

수업 노트/bandit

[lesson13] bandit level 13 → 14

오리지날초이 2021. 9. 5. 18:09

id : bandit13

password : wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw

(2023.04 기준)

 

 

/etc/bandit_pass/bandit14 에 패스워드가 저장되어 있는데, bandit14 user 만 읽을 수 있다고 합니다.

이번 단계에서는 패스워드를 획득하는게 아니라 ssh 개인키를 이용하면 통과할 수 있다고 하네요.

 

그동안 별 생각없이 ssh 로 원격 로그인을 이용해왔지만

이제는 ssh 통신의 세부 원리 를 알아야 할 때가 되었습니다.

 

ssh 통신의 세부 원리부터 공부하고 이 문제에 접근해봅시다.

 

더보기

ssh 를 통해 서버에 최초로 접속하면 이런식의 메세지를 볼 수 있습니다.

꼭 bandit13 이 아니라 bandit.overthewire.org 에 한번이라도 접속한 클라이언트는 해당 메세지가 안보일 겁니다.

 

이 상황에서 Accept 를 눌러서 ssh 접속이 정상으로 된 상황은

내 PC에 bandit 서버의 공개키를 등록하고 ssh 를 연결했다는 것입니다.

 

윈도우용 putty 프로그램은

레지스트리 HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys
에 해당 정보를 저장하고, 리눅스는 그냥 사용자 홈디렉토리/.ssh/known_hosts 에 저장됩니다.


해당 파일을 편집에서 기존의 bandit 호스트 정보를 삭제하면 다시 처음 접속할때의 화면이 나오겠죠?

 

어째튼 로그인 후 sshkey.private 을 살펴보니 base64 로 인코딩된 RSA 개인키값이 나오네요

 

개인키 값은 원래 base64 로 인코딩해서 관리됩니다.

이걸 억지로 base64 디코딩 해봤자 별 의미 없습니다.

 

문제에서 /etc/bandit_pass/bandit14 경로에 대한 정보를 준게 있습니다.

살펴보니까 진짜 bandit14 만 접근 가능하도록 막혀있네요.

 

ssh 통신에서 중요한 점은 공개키는 암호화 용이고,

개인키는 공유되지 않는 고유키이며 복호화하는데 사용된다는 점입니다.

 

ssh 를 조금 더 활용하면 

특정 클라이언트의 공개키를 호스트(서버)의 신뢰할 수 있는 사용자 목록(authorized_keys)

등록함으로써 인증절차(로그인)을 생략하고 이용할 수도 있습니다.

 

아무튼 공개키 등록만으로도 바로 접속이 가능한데

특정 ID 개인키를 가지고 있다는 것은 바로 접속이 가능한 수준의 보안키를 획득했다는 뜻입니다.

문제에서는 bandit14 의 개인키를 그냥 던져주긴 했지만요.

 

ssh --help 와 man ssh 를 살펴보면 개인키 파일을 이용해서 바로 접속이 가능한 옵션이 있음을 알 수 있습니다.

 

보통의 경우는 접속하고자 하는 서버의 ~/.ssh 폴더에 authorized_keys 가 등록되고

내 개인키가 ~/.ssh/id_rsa 로 저장되어 있으면 인증을 생략한 자동 로그인이 가능합니다.

 

-i 는 개인키가 ~/.ssh/id_rsa 가 아닌 특정파일을 지정할 때 사용하는 명령입니다.

 

 

 

 

리눅스에서 ssh 를 커맨드로 사용해서 바로 bandit14 로 접속해보겠습니다.

기존은 ssh [id]@[호스트주소] 입니다.

 

-i 로 키파일을 지정해서 동일서버(localhost) 의 bandit14 로 ssh 통신을 정식으로 시도합니다.

 

bandit14 의 개인키를 이용해서 성공적으로 ssh 로그인에 성공했습니다.

 

※ 2023.04 현재는 위 명령어로 진행하면 접속이 되지 않습니다.

예전과 다르게 관리자용 22번 포트와 bandit 유저용 2220 포트를 구분해서 운영하기 때문인데

이를 반영해서 ssh -i sshkey.private bandit14@localhost -p 2220 으로 명령어를 변경해줘야 합니다.

 

 

bandit14의 홈디렉토리를 살펴보면 ~/.ssh/authorized_keys 가 존재하고

bandit13 의 개인키와 페어를 이루는 공개키가 등록되어 있는 것을 확인할 수 있습니다.

 

이제 남은건 bandit14 패스워드를 직접 확인하는 일이네요.

 

패스워드 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e 를 획득했습니다.

(예전 스샷입니다)

 

728x90
반응형

'수업 노트 > bandit' 카테고리의 다른 글

[lesson15] bandit level 15 → 16  (0) 2021.09.19
[lesson14] bandit level 14 → 15  (1) 2021.09.18
[lesson12] bandit level 12 → 13  (0) 2021.09.05
[lesson11] bandit level 11 → 12  (1) 2021.08.28
[lesson10] bandit level 10 → 11  (0) 2021.08.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함