티스토리 뷰

수업 노트/bandit

[lesson16] bandit level 16 → 17

오리지날초이 2021. 9. 21. 07:25

id : bandit16

password : JQttfApK4SeyHwDlI9SXGR50qclOAil1

(2023.05 기준)

 

 

 

 

localhost 31000번 포트부터 32000번 포트 범위 내에

현재 패스워드를 제출해야 다음단계로 가는 자격증명을 얻을 수 있다고 합니다.

 

우선 서버에서 어떤 포트들이 리스닝 하고 있는지 부터 확인해보세요.

그리고 서버가 SSL 통신을 하는지, 아닌지를 확인해보세요.

단 하나의 서버만 다음 단계 자격증명을 줄 것이고,

다른 것들은 당신이 무엇을 보내던지 간단히 되돌려 보낼 것입니다.

 

우선 열려있는 포트부터 확인해야겠네요

netstat 을 이용해도 좋고 nmap 을 이용해도 좋습니다.

 

함께 풀어봅시다.

 

더보기

이번 문제에서는 특정 범위 내에 열려있는 포트를 확인해야 합니다.

nmap 이 이런 포트스캐닝에 특화되어있는 툴입니다.

 

nmap 의 자세한 사용법은 나중에 한번쯤 다뤄보겠습니다.

nmap --help 는 각자 살펴보고,

지금은 간단히 31000 ~ 32000 포트만 살펴봅시다.

5개의 open port 를 찾았습니다.

 

문제는 지금부터입니다.

다섯개의 서버에게 SSL 로 현재 패스워드를 제출하겠습니다.

 

31046 포트로 패스워드를 제출해봤는데 별 반응이 없습니다.

애당초 연결이 안되는 것을 확인할 수 있습니다.

 

-quiet 옵션을 붙이면 결과만 간단히 확인 가능합니다.

 

나머지 4개 포트도 확인해봅시다

PORT      STATE SERVICE
31046/tcp open  unknown
31518/tcp open  unknown
31691/tcp open  unknown
31790/tcp open  unknown
31960/tcp open  unknown

 

31518 포트는 ssl 연결이 성립되네요

 

 bandit16 패스워드를 입력했는데 메아리 처럼 돌아왔습니다. 이번 포트도 아닌거 같습니다.

 

31691, 31960 포트 모두 연결 성립 불가입니다.

 

하지만 31790 포트는 응답이 왔습니다.

 

cat /etc/bandit_pass/bandit16 에 파이프(|) 를 연결해서 헤깔릴 수도 있겠는데
그냥 openssl s_client -connect localhost:31790 -quiet 을 실행하고
bandit16 패스워드 cluFn7wTiGryunymYOu4RcffSxQluehd 를 입력하면
correct! 메세지와 아래 텍스트 정보가 나옵니다.

 

서버로부터 ssl 로 회신받은 메세지는 RSA 개인키이네요

획득한 서버 개인키가 문제에서 계속 강조하던 자격증명이었군요.

 

개인키는 나만 알고 있어야하는 키이고, 공개키가 상대방에게 공유가능한 키입니다.

ssh 에서는 개인키를 들고 접속하면 authorized_keys에 등록되어 있는 공개키와 pair 인것을 확인하고

바로 로그인도 가능했습니다.

 

* 사실 이건 클라이언트 홈디렉토리의 .ssh/id_rsa 파일을 자동으로 반영하지만

   bandit16 환경에서는 해당 디렉토리와 파일이 존재하지 않기 때문에 -i 옵션으로 별도 파일지정하는 겁니다

 

이 내용을 파일로 저장하고 ssh 로 접속해봅시다.

bandit 에서는 /tmp/[개인폴더]를 이용해야합니다. 

 

cat 으로 확인해보니 군더더기가 붙어있습니다.

vim 으로 correct! 가 적힌 첫줄만 지우고 저장합시다.

 

그 다음은 기억나시나요? ssh -i 옵션을 이용해서 bandit17 로 바로 접속이 가능합니다.

아.. 끝난 줄 알았던 문제가 끝이 아니었습니다.

예상치 못한 unprotected private key file 메세지가 나오네요.

하지만 잘 살펴보니 644 권한의 키가 너무 오픈되어 있으니

다른사람들이 NOT accessible 하도록 조치가 필요하다고 합니다.

우리는 퍼미션에 대해 공부한 적 있습니다.

 

chmod 400 으로 수정합시다.

 

동일한 명령어로 다시 접속해보면 bandit17 로 접속한 것을 확인할 수 있습니다.

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

 

 

더불어 bandit17 홈디렉토리에 .ssh/authorized_keys 에 공개키가 등록된 것도 확인했네요

id_rsa 는 bandit16 에서 우리가 내려받은 개인키 파일입니다.

 

파일 퍼미션에 대해 다시 알고 싶으면 [여기]를 클릭해주세요

 

ssh 개인키를 이용한 문제는 bandit13 이었습니다.

복습하고 싶으면 [여기]를 클릭해주세요

728x90
반응형

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

[lesson18] bandit level 18 → 19  (0) 2021.09.28
[lesson17] bandit level 17 → 18  (0) 2021.09.28
[lesson15] bandit level 15 → 16  (0) 2021.09.19
[lesson14] bandit level 14 → 15  (1) 2021.09.18
[lesson13] bandit level 13 → 14  (1) 2021.09.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함