Wargame/bandit

Bandit level 16 -> level 17

핏디 2021. 7. 3. 23:24
SMALL

[문제]

 


[풀이]

먼저, localhost에 대해 nmap를 실행한 결과, 31000에서 32000 사이의 포트가 보이지 않았다.

 

이에 스캔할 포트의 범위를 지정하여 5개의 포트가 열려있는 것을 확인할 수 있었다.

 

이 중, 인증을 주는 포트는 단 한가지.

아쉽지만 하나씩 시도해봐야 했다.

 

단순히 nmap 했을 때 나오는 포트는 어떤 포트들인지?

범위를 지정한 것도 open 상태의 포트를 출력한 것인데, 왜 nmap만 사용하면 22, 113, 30000 포트만 나올까?

 

 

① 31046

31046 포트로 openssl 연결하니 인증이 되지 않았다. 

 

 

② 31518

 

31518 포트는 openssl을 지원하는 것 같았지만 현재의 password를 입력하였을 때 어떠한 결과도 얻을 수 없었다.

 

③ 31691

31691 포트 또한 openssl에 대한 인증이 존재하지 않았다.

 

④ 31790

1번째 방법

31790 포트는 openssl에 대한 인증이 존재하였고, password를 입력하니 private key를 획득할 수 있었다.

해당 private key를 통해 bandit17에 ssh 접속을 시도하면 될 것 같다.

 

두 번째 방법

직접 입력하지 않고, 바로 전달하는 방법도 있다.

 

echo로 password를 호출하여 파이프로 전달하는 방법인데, 한 가지 문제점은 private key를 확인할 수 없었다.

DONE 으로 끝나버렸는데, -ign_eof 를 통해 해결할 수 있다.

 

-ign_eof 옵션을 함께 사용하니 RSA Private key가 출력되는 것을 확인할 수 있었다.

 

세 번째 방법

cat으로 bandit16 의 password 파일을 읽어 파이프로 전달하면 key를 획득할 수 있다.

앞선 echo와 같은 방식이지만 차이점은 -quiet 옵션을 사용하는 것이다.

 

-quiet 옵션은 s_client의 output을 출력하지 않는다. 그리고 default로 -ign_eog를 포함한다.

 

2-3번 방법에서 출력 길이에 제한이 있는 것일까? 왜 -ign_eog와 -quiet 옵션을 붙여야만 sshprivate.key가 출력되지?

 

획득한 key를 서버의 /tmp 속에 저장할 수 있다.

/tmp로 이동하여 hello라는 폴더를 만든 후, hi라는 파일을 만들어 RSA PRIVATE KEY에 대한 내용을 저장하였다.

그러나, 이는 바로 보낼 수 없다!

* -----BEGIN RSA PRIVATE KEY----- 와 -----END RSA PRIVATE KEY-----까지 꼭 넣어줘야함. 오타 발생하면 접속안됨.

 

권한 문제 때문.

이대로 보내게 되면 다음과 같은 메세지를 확인할 수 있다.

 

Permissions 0644 for 'hi' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

라는 메세지에 주목해보자.

 

현재 private key가 담긴 hi 파일의 권한은 644로 설정되어 있는데

private key는 다른 누군가에 의해 접근이 불가한 고유의 키이기 때문에 다른 사람과 공유되어선 안된다.

따라서 파일의 권한이 소유자 외에는 0으로 설정되어 있어야 접속할 수 있다는 뜻이다.

 

따라서 파일의 권한을 600이나 400, 700 등으로 설정하면 bandit17에 접속할 수 있다.

 

 

 


[핵심]

port scanner

A port scan or portscan is a process that sends client requests to a range of server port addresses on a host, with the goal of finding an active port; this is not a nefarious process in and of itself.[1] The majority of uses of a port scan are not attacks, but rather simple probes to determine services available on a remote machine.

 

To portsweep is to scan multiple hosts for a specific listening port. The latter is typically used to search for a specific service, for example, an SQL-based computer worm may portsweep looking for hosts listening on TCP port 1433.

 

nmap

> 열린 포트 확인

 

 


[출처]

zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_nmap

 

리눅스 nmap - 제타위키

다음 문자열 포함...

zetawiki.com

https://sisiblog.tistory.com/21

 

[linux] 리눅스 nmap 명령어 사용 예제

https://nmap.org/book/man.html http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ 리눅스 nmap 명령어 사용 예제 nmap은 network mapper의 줄임말로 네트워크 탐색과 보안감사를 하는 오픈..

sisiblog.tistory.com


 

LIST

'Wargame > bandit' 카테고리의 다른 글

Bandit level 18 -> level 19  (0) 2021.07.04
Bandit level 17 -> level 18  (0) 2021.07.03
Bandit level 15 -> level 16  (0) 2021.05.05
Bandit level 14 -> level 15  (0) 2021.05.04
Bandit Level 13 -> Level 14  (0) 2021.05.04