Bandit level16

반응형


OverTheWire 문제풀이 - Bandit

* Bandit 는 리눅스 관련 문제입니다.

* 리눅스 명령어를 연습하기에 아주 좋습니다.

* 개인적인 문제풀이로 해답을 보시기 전에 직접 풀어보시기를 권해드립니다.


Bandit level16

Level Goal

The credentials for the next level can be retrieved by submitting the password of the current level to a port on localhost in the range 31000 to 32000. First find out which of these ports have a server listening on them. Then find out which of those speak SSL and which don’t. There is only 1 server that will give the next credentials, the others will simply send back to you whatever you send to it.

Commands you may need to solve this level

ssh, telnet, nc, openssl, s_client, nmap

Helpful Reading Material

Port scanner on Wikipedia

레벨 목표

현재 레벨의 암호를 31000 - 32000 범위의 localhost에있는 포트에 제출하면 다음 레벨에 대한 신임을 검색 할 수 있습니다. 먼저 이 포트 중 어느 포트에서 서버가 수신 대기 중인지 확인하십시오. 그런 다음 SSL을 말하는 사람과 그렇지 않은 사람을 찾으십시오. 다음 자격 증명을 제공하는 서버는 1 개뿐입니다. 다른 서버는 보내는 모든 내용을 사용자에게 간단히 보냅니다.

이 레벨을 해결하는 데 필요할 수있는 명령

ssh, telnet, nc, openssl, s_client, nmap

유용한 읽기 자료

Port scanner on Wikipedia [링크]


[문제 풀이]

이번 문제는 15번 문제를 조금 더 응용한 문제이다. 열려있는 포트를 찾아서 현재 레벨의 암호를 제출하면 다음 레벨에 대한 힌트가 제공된다고 한다. 먼저 31000~32000범위에서 열려있는 포트를 찾아야 하는데, 일일히 찾기에는 너무 범위가 많기 때문에 명령어를 사용하는게 효과적일듯 하다. netstat과 같은 명령어 또는 ss 명령어를 사용하면 적절하다. netstat명령어를 써보면 다음과 같은 결과를 얻을 수 있다.

#> netstat -na | grep LISTEN

netstat 명령어 알아보기


위와 같은 결과를 토대로 열려있는 포트는 다음과 같다.

  • 31960

  • 31518

  • 31046

  • 31691

  • 31790

이 포트를 하나하나 openssl을 통해 연결해서 해당레벨의 암호를 입력해보면 다음과 같은 화면을 얻을 수 있다.

#> openssl s_client -connect localhost:31790


일치하는 포트를 찾아 해당레벨의 암호를 입력해보면 rsa private 키를 얻을 수 있다. 그렇다면 이 키를 이용해서 다음레벨의 ssh로 접속을 할 수 있다! 일단 현재 home 디렉터리에서는 쓰기 권한이 없기 때문에 /tmp 디렉터리에 rsa 키를 저장해두고 ssh -i옵션을 이용해서 ssh접속을 시도해볼 수 있다. 나같은 경우에는 /tmp/moon/key 에 rsa 개인키 정보를 저장해 두었다.

#> ssh -i /tmp/moon/key bandit17@localhost

? 그런데 경고가 뜬다 개인키 권한설정 문제라고 한다. 권한이 없는 사람이 개인키를 참조 및 사용할 수 없어야 하기 때문에 다음과 같이 권한을 변경해준다.

#> chmod 700 /tmp/moon/key


권한 변경 후 다시 ssh 연결해 다음과 같이 bandit17로 접속이 성공했다. 이제 패스워드가 저장되어있는 /etc/bandit_pass/bandit17를 참조하면 다음 레벨의 암호를 획득할 수 있다.

#> cat /etc/bandit_pass/bandit17

next level password : xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn

반응형

'War Game > bandit' 카테고리의 다른 글

Bandit level18  (0) 2017.04.06
Bandit level17  (0) 2017.04.06
Bandit level15  (0) 2017.04.03
Bandit level14  (0) 2017.04.03
Bandit level13  (0) 2017.04.03
TAGS.

Comments