OverTheWire: Bandit Network Connection (Level 16 → Level 17)

Fordsec·2023년 4월 8일

  1. Level 16 -> Level 17으로 넘어가는 문제이다.

31000번부터 32000번 포트 그중에서 어떤 포트인지는 모른다.

그런데, 그 중에서 열려있는 포트가 몇개 있는데,

31000 ~ 32000 이 포트 사이에, 하나의 포트가 열려있고,

그 중에 SSL 통신을 하는 애를 찾아가지고,

걔한테 현재 비밀번호를 알려주면,

다음으로 가는 비밀번호를 얻을 수 있을 것이다.

  1. 지난번에 사용한 이 명령어를 31000부터 32000까지니까 1,000번을 하면 된다.

  1. 이러한 행위를 "포트 스캔" 이라고 한다.

어떤 포트가 열려있는지 확인하는 작업이다.

예를들어 1번부터 100번 포트를 스캔한다면, 하나씩 직접 두들겨 보는 작업이다.

  1. 포트 스캔을 할려면, 연결을 해봐야 한다.

TCP 연결을 시도하는 방법은 nc 명령어이다.

nc에 옵션을 줄 수 있는데 뒤에 -nv옵션을 준다. (상세 결과를 보겠다는 옵션이다.)

-w 1은 연결만 하겠다. -z옵션은 아무것도 데이터를 보내지 않겠다.

뒤에는 IP주소를 적어주면 된다. 뒤에 localhost를 적어줘도 되지만, 127.0.0.1이라고 적어도 된다.

  1. localhost가 자기 자신이라고 했는데, 이걸 ip형태로 변환한게 127.0.0.1인 것이다.

다시 4번 사진을 보며, 뒤에 포트 번호를 적어줄 것인데 31000번부터 32000까지 다 들어가 봐라 라는 의미이다.

  1. 그러면 사진대로 하나씩 전부다 1,000번을 살펴본 것이다.

그러면 이 수많은 것들 중에, SSL통신을 하는 애를 찾아야 한다.

  1. SSL통신은 지난번 문제에서 해당 명령어로 해결을 해봤었다.

이거를 그대로 사용할 것이다.

  1. 오픈된 포트를 하나 골라서 시도를 해봤지만, 연결이 안된 것으로 보아 해당 포트는 SSL통신을 하지 않는다는걸 알 수 있다.

  1. 그 전에, 1,000개의 포트 속에서 오픈된 포트만 보여주는 커맨드는 위 사진과 같다.

그러면 오픈 된 것들만 골라서 직접 하나씩 확인해 보면 된다.

31790번 포트가 연결이 되었다. 즉, 31790포트가 SSL 통신을 하고 있구나 라는걸 알 수 있다.

그러면 이제, 현재 비밀번호를 보내야 한다.

  1. 현재 비밀번호를 입력해줬더니, 지난번 문제처럼 기대한 것과는 다른 응답이 출력되었다.

SSH 비밀키를 보내주었다.

이 File를 사용해서 로그인을 시도해 보자

  1. 해당 값을 전부다 복사 해준다.

  1. 작업할 디렉토리를 따로 생성을 해주고, 이동을 해준다.

  1. nano sshkey를 만들어 준다.

  1. 아까 복사한 값을 붙여넣기 한다음 저장해준다.

  1. ls로 sshkey가 잘 만들어 졌는지 확인했고,

ssh -i sshkey bandit17@localhost 커맨드로 지난번과 같이 입력을 해주었더니 로그인이 안되었다.

해석을 해보면 해당 sshkey 값은 공개키이며 권한이 잘못되었다고 한다.

  1. 권한을 확인해 보니, rw-r--r이다.

이 사람 뿐만 아니라, 모든 사람이 이 파일을 읽을 수 있다.

그러면, 이 ssh에서는 이거는 안전하지 않은 key다. 라고 인식을 해서, 사용을 안해준다.

그래서, 해당 sshkey를 사용할려면, 권한을 변경 해주어야 한다.

  1. chmod 600는 다른사람의 읽기 권한을 빼겠다는 의미이다.

이렇게, 다른 사람이 읽지 못하는 파일로 만들어 두고, 아까 썼던 명령어를 다시 써서 엔터를 눌러보자

  1. 했더니, 다른걸로 막힌다.

!!! 부분 문장 한줄을 살펴보니, ssh server on port 22 라는걸 적어줘야 한다는 의미이다.

그런데 우리는 bandit16으로 로그인할때, port를 -p 2220으로 접속했었다.

그렇기에 -p22가 아닌, -p 2220으로 입력해주어야 한다.

  1. 사진속 처럼 하고, yes를 입력해주었다.

  1. bandit17로 로그인을 성공하였다.

이제 bandit17의 패스워드를 알아야 한다. (다음에 접속해야 하니)

  1. bandit의 비밀번호는 /etc/bandit_pass/에 다 저장되어 있다.

하지만 자신의 권한에 맞는 것만 읽을 수 있다.

  1. 이렇게 입력을 하면, bandit17의 비밀번호를 얻을 수 있다.

https://youtube.com/@Certa6

제 유튜브 채널입니다.
도움이 됐다면, 구독 부탁합니다!
주변에 제 블로그, 유튜브를 알려주시면 감사하겠습니다~! :)

Thank you for watching the blog.
Please subscribe! I would appreciate it if you could share the blog around you.

profile
Penetration Tester | ROK NIS 2025 APEX | ROKAF CERT

4개의 댓글

comment-user-thumbnail
2024년 3월 24일

감사합니당

1개의 답글
comment-user-thumbnail
2024년 3월 24일

감사합니당

1개의 답글