2023.11.28 - [워게임/Bandit (Linux 초보자들을 위한 워게임)] - [OverTheWire:Bandit] Level 15 → Level 16
Level 16 접속정보
컴퓨터의 사용자 이름( 계정명 ): bandit16
호스트(접속해야 할 주소):bandit.labs.overthewire.org
포트 번호: 2220
비밀번호: JQttfApK4SeyHwDlI9SXGR50qclOAil1 (2023.11 기준)
PS> ssh bandit16@bandit.labs.overthewire.org -p 2220
문제 및 해설
https://overthewire.org/wargames/bandit/bandit17.html
해설: 다음 레벨의 비밀번호는 현재 레벨의 비밀번호를 로컬호스트의 31000에서 32000까지의 포트 중 하나로 제출하여 검색할 수 있습니다. 먼저 이 중 어떤 포트에 서버가 리스닝되고 있는지 찾아보세요. 그런 다음 그중에서 SSL을 사용하는 서버와 사용하지 않는 서버를 찾아보세요. SSL을 사용하는 서버들 중 다음 레벨의 비밀번호를 제공하는 서버는 단 하나뿐이며, 다른 서버들은 단순히 받은 내용을 다시 보낼 뿐입니다. (echo 명령어 사용한 듯)
풀이
에 들어가기 전에 nmap이라는 명령어에 대해 알고 갈 필요가 있다. 나무위키에 옵션까지 생각보다 잘 정리된 편이라 읽어보시면 좋을 것 같습니다.
정리하자면
nmap은 네트워크 스캐닝 도구로, 특정 호스트 또는 IP 주소의 네트워크 서비스 및 포트 상태를 확인하는 데 사용됩니다. 주로 보안 테스트 및 네트워크 감시에 활용됩니다.
이제 풀이에 들어가겠습니다.
서버 리스닝 중인 포트 찾기:이 명령어를 사용하여 해당 범위 내에서 리스닝 중인 포트를 찾을 수 있습니다.
$ nmap localhost -p 31000-32000
SSL을 사용하는 서버 찾기:이 명령어를 사용하여 특정 포트에서 SSL을 사용하는 서버를 찾을 수 있습니다. <port_number>
에는 이전 단계에서 찾은 포트 중 하나를 넣어야 합니다.
$ nmap --script ssl-enum-ciphers -p <port_number> localhost
근데 이 방법을 사용하니 자꾸 접근 제한을 당했습니다. 따라서 그냥 바로 서버에 접속하는 방법을 사용했습니다.
서버에 접속하기:이 명령어를 사용하여 SSL을 사용하는 서버에 접속할 수 있습니다. <port_number>
에는 이전 단계에서 찾은 포트 중 하나를 넣어야 합니다.
$ openssl s_client -connect localhost:<port_number>
4번째 포트에 접속했고 r을 입력했더니 다음과 같이 떴습니다.
$ openssl s_client -connect localhost:31790
이번엔 해당 레벨 비밀번호를 입력했더니 RSA 개인키가 떴다.
이 개인키를 이제 저장해야 한다.
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAvmOkuifmMg6HL2YPIOjon6iWfbp7c3jx34YkYWqUH57SUdyJ
imZzeyGC0gtZPGujUSxiJSWI/oTqexh+cAMTSMlOJf7+BrJObArnxd9Y7YT2bRPQ
Ja6Lzb558YW3FZl87ORiO+rW4LCDCNd2lUvLE/GL2GWyuKN0K5iCd5TbtJzEkQTu
DSt2mcNn4rhAL+JFr56o4T6z8WWAW18BR6yGrMq7Q/kALHYW3OekePQAzL0VUYbW
JGTi65CxbCnzc/w4+mqQyvmzpWtMAzJTzAzQxNbkR2MBGySxDLrjg0LWN6sK7wNX
x0YVztz/zbIkPjfkU1jHS+9EbVNj+D1XFOJuaQIDAQABAoIBABagpxpM1aoLWfvD
KHcj10nqcoBc4oE11aFYQwik7xfW+24pRNuDE6SFthOar69jp5RlLwD1NhPx3iBl
J9nOM8OJ0VToum43UOS8YxF8WwhXriYGnc1sskbwpXOUDc9uX4+UESzH22P29ovd
d8WErY0gPxun8pbJLmxkAtWNhpMvfe0050vk9TL5wqbu9AlbssgTcCXkMQnPw9nC
YNN6DDP2lbcBrvgT9YCNL6C+ZKufD52yOQ9qOkwFTEQpjtF4uNtJom+asvlpmS8A
vLY9r60wYSvmZhNqBUrj7lyCtXMIu1kkd4w7F77k+DjHoAXyxcUp1DGL51sOmama
+TOWWgECgYEA8JtPxP0GRJ+IQkX262jM3dEIkza8ky5moIwUqYdsx0NxHgRRhORT
8c8hAuRBb2G82so8vUHk/fur85OEfc9TncnCY2crpoqsghifKLxrLgtT+qDpfZnx
SatLdt8GfQ85yA7hnWWJ2MxF3NaeSDm75Lsm+tBbAiyc9P2jGRNtMSkCgYEAypHd
HCctNi/FwjulhttFx/rHYKhLidZDFYeiE/v45bN4yFm8x7R/b0iE7KaszX+Exdvt
SghaTdcG0Knyw1bpJVyusavPzpaJMjdJ6tcFhVAbAjm7enCIvGCSx+X3l5SiWg0A
R57hJglezIiVjv3aGwHwvlZvtszK6zV6oXFAu0ECgYAbjo46T4hyP5tJi93V5HDi
Ttiek7xRVxUl+iU7rWkGAXFpMLFteQEsRr7PJ/lemmEY5eTDAFMLy9FL2m9oQWCg
R8VdwSk8r9FGLS+9aKcV5PI/WEKlwgXinB3OhYimtiG2Cg5JCqIZFHxD6MjEGOiu
L8ktHMPvodBwNsSBULpG0QKBgBAplTfC1HOnWiMGOU3KPwYWt0O6CdTkmJOmL8Ni
blh9elyZ9FsGxsgtRBXRsqXuz7wtsQAgLHxbdLq/ZJQ7YfzOKU4ZxEnabvXnvWkU
YOdjHdSOoKvDQNWu6ucyLRAWFuISeXw9a/9p7ftpxm0TSgyvmfLF2MIAEwyzRqaM
77pBAoGAMmjmIJdjp+Ez8duyn3ieo36yrttF5NSsJLAbxFpdlc1gvtGCWW+9Cq0b
dxviW8+TFVEBl1O4f7HVm6EpTscdDxU+bCXWkfjuRb7Dy9GOtt9JPsX8MBTakzh3
vBgsyi/sN3RqRBcGU40fOoZyfAMT8s1m/uYv52O6IgeuZ/ujbjY=
-----END RSA PRIVATE KEY-----
exit 하여 로그아웃하고 (bandit16 계정으로 파일 쓰기가 안되었음 ㅠ) key라는 파일에 위 개인키를 복사 붙여 넣기 하였다.
WSL을 이용했는데 이때 사용자 권한이 중요하다.
$ chmod 700 key
만약 권한을 소유자 이외에 (그룹 or 다른 사람) 도 주게 되면 아래와 같은 경고 메시지로 인해 bandit17로 접속이 불가능하다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for './key' are too open.
It is required that your private key files are NOT accessible by others.
자 이제 아래와 같이 하면 bandit17로 접속할 수 있다.
$ ssh -i ./key bandit17@bandit.labs.overthewire.org -p 2220
이러고 끝내면 뭔가 찝찝하다. 왜냐하면 그동안 password는 이런 형식이 아니었거든요.
지금 bandit17로 로그인했기 때문에 자기 서버에 저장된 자신의(bandit17의) 비밀번호 정도는 읽을 수 있을 것이다.
$ cat /etc/bandit_pass/bandit17
실제로 bandit17 이외에 bandit20 등 여러 사용자의 비밀번호를 얻으려 시도해 보았으나 권한 없음이라는 답변을 받았다.
Level 17 접속정보
컴퓨터의 사용자 이름( 계정명 ): bandit17
호스트(접속해야 할 주소):bandit.labs.overthewire.org
포트 번호: 2220
비밀번호: VwOSWtCA7lRKkTfbr2IDh6awj9RNZM5e(2023.12 기준)
bandit Level 17로 가기 위한 비밀번호: VwOSWtCA7lRKkTfbr2IDh6awj9RNZM5e
마지막으로 exit 명령어를 입력하여 서버에서 bandit17 계정을 로그아웃하겠습니다.
'워게임 > Bandit (Linux Wargame)' 카테고리의 다른 글
[OverTheWire:Bandit] Level 15 → Level 16 (1) | 2023.11.28 |
---|---|
[OverTheWire:Bandit] Level 14 → Level 15 (1) | 2023.11.26 |
[OverTheWire:Bandit] Level 13 → Level 14 (1) | 2023.11.25 |
[OverTheWire:Bandit] Level 12 → Level 13 (1) | 2023.11.22 |
[OverTheWire:Bandit] Level 11 → Level 12 (1) | 2023.11.20 |