김승현

[OverTheWire] Bandit Level 16 → Level 17 본문

Linux/OverTheWire : Bandit

[OverTheWire] Bandit Level 16 → Level 17

kshind 2023. 2. 19. 00:28

풀이

문제 원문

localhost의 31000~32000 포트 사이에서 하나의 서버에 이번 단계의 password를 입력하면 된다고 하는 것 같다. 

주어진 명령어

문제를 보고 하나하나 다 시도를 해봐야 되나..?라고 생각했는데

필요한 명령어에서 nmap이라는 명령어를 찾아보니까 여기서 쓰면 될 것 같은 유용한 기능이 되게 많아 보였다.

 


nmap

network mapper의 줄임말로 고든 라이온(Gordon Lyon)님께서 개발한 오픈 소스 툴이다.

네트워크 탐색과 보안 감사를 검사하며 네트워크 지도도 만들 수 있다.

네트워크 운영이나 취약점을 발견할 때 유용하기 때문에 꼭 내용을 숙지해두는 게 좋다고 한다.

 

nmap의 정보와 옵션에 대해서 찾아본 블로그입니다. 되게 내용이 많으니까 공부하실 때 참고 하시면 좋을 거 같아요!

 

Nmap 명령어의 옵션 설명 및 사용 예제

White-Hat Hacker

koromoon.blogspot.com


풀이

(ls -al는 필요없을 것 같아 넣지 않았습니다)

nmap -sV localhost -p 31000-32000

-sV : 열린 포트를 조사하여 서비스/버전 정보 확인

-p : 해당 포트 내에서만 조사

접속하자마자 바로 nmap을 이용해서 우리에게 필요한 포트가 뭔지 탐색해봤다. 

다른 건 echo로 뜨는데 31790포트에서만 이상하게 unknown이 뜨는 게 수상하다.


openssl s_client 명령어를 입력한 모습

여기서 이제 이번 단계의 password를 입력해야 한다.

password를 입력하니까 RSA  PRIVATE KEY라면서 이상한 문자열이 주르륵 뜨게 된다.

이전에 풀었던 ssh -i priate key를 이용해서 접속한 것이 바로 떠올랐다.

또 예전에 /tmp 디렉토리를 만들어서 푸는 문제도 있었는데 두 문제들을 응용해서 이걸 해결하면 될 것 같다.


private 키를 이용해서 만든 문제 풀이


 

[OverTheWire] Bandit Level 13 → Level 14

문제 비밀번호는 /etc/bandit_pass/bandit14에 있고 이 파일은 bandit14라는 유저만 읽을 수 있다. 우리는 private SSH key를 얻어야 된다고 한다. hostname은 localhost라고 한다. 문제에 ssh가 적혀있는 것과 사용할

kshind.tistory.com

/tmp 디렉토리를 이용해서 만든 문제 풀이


 

[OverTheWire] Bandit Level 12 → Level 13

문제 data.txt에 다음 단계로 가는 password가 있는데 반복적으로 압축된 파일의 hexdump라고 한다. 이 단계에서 mkdir을 이용해서 /tmp 아래에 디렉토리를 만드는 게 작업하는데 좋다고 합니다. 디렉터리

kshind.tistory.com


 

vi 명령어를 사용해서 /tmp/key/sshkey.private를 작성했다.

→ 나는 vi를 이용했지만 다른 명령어를 통해서도 충분히 해결가능하다.

 

가능한 명령어들

1. vi /tmp/key/sshkey.private

2. vim /tmp/key/sshkey.private

3. touch /tmp/key/sshkey.private


4. cat > /tmp/key/sshkey.private
    → cat은 그저 보는 용도로만 알고 있는 경우가 많은데 '>' 를 통해서 입력 또한 가능함

...etc....

 

작성내용은 아까 31790에서 뜬 private key 내용을 그대로 복사 붙여넣기 했다.

 

ssh -i /tmp/key/sshkey.private bandit17@localhost -p 2220

위의 형식대로 입력했다.

그러나 tmp/key/sshkey.private가 bad permissions라고 뜬다.

자세히 읽어보면 본인 외에는 private key 파일을 엑세스 할 수 없어야 된다고 한다.

chmod 명령어를 사용해서 파일의 권한을 변경해보았다.

chmod : 리눅스 내에서 파일의 권한을 수정해주는 명령어

사용법 chmod abc [파일명]  #a, b, c는 각 0~7의 정수

a : 소유한 유저의 권한
b : 소유한 그룹의 권한
c :  그외 사람들의 권한

리눅스에는 권한이 크게 r(read, 읽기), w(write, 쓰기), x(execute, 실행)가 있다.
chmod에서 r은 4, w는 2, x는 1의 값을 가진다.

사용 예시
소유한유저가 r, w의 권한이 필요하면 chmod 600
소유한 유저, 그룹이 r, w, x 권한이 필요하면 chmod 770

권한을 바꿨으니까 다시 ssh 접속을 시도해보았다.

이번에는 성공적으로 bandit17로 로그인할 수 있었다. 

이전에 password를 얻었던 경로 그대로 bandit17을 적용해서 cat 해봤더니 password를 얻을 수 있었다.

 


다음 문제

https://kshind.tistory.com/19

 

[OverTheWire] Bandit Level 17 → Level 18

문제 홈디렉토리에 passwords.old와 passwords.new 총 두 개의 파일이 있다고 한다. passwords.old와 passwords.new 중 한 줄의 내용이 바꼈는데 그 바뀐 게 password라고 한다. NOTE : 만약 이 레벨을 풀고 bandit18로

kshind.tistory.com