안녕하세요. 은남입니다. :)
제 리눅스 공부 목적으로 포스팅합니다.
2020/04/16 - [IT 및 정보보호 관련 소식&정보] - Linux study_Over The Wire_bandit [01 : ls, cat, find -type ]
2020/04/21 - [IT 및 정보보호 관련 소식&정보] - Linux study_OverTheWire[03: linux strings, tr, xxd, nc]
지난번에 Level 15까지 진행 후 이어서 하려 합니다.
Bandit Level 15 → Level 16
Level Goal
The password for the next level can be retrieved by submitting the password of the current level to port 30001 on localhost using SSL encryption.
Helpful note: Getting “HEARTBEATING” and “Read R BLOCK”? Use -ign_eof and read the “CONNECTED COMMANDS” section in the manpage. Next to ‘R’ and ‘Q’, the ‘B’ command also works in this version of that command…
Commands you may need to solve this level
ssh, telnet, nc, openssl, s_client, nmap
현재단계의 패스워드를 로컬 호스트 30001 포트로 제출하면 다음 걸 알려주겠답니다.ㅎㅎ 이번에도 openssl 명령어 및 s_client를 활용해야 할 듯합니다.
ssh bandit15@bandit.labs.overthewire.org -p 2220
로 15에 접속하여 localhost 30001 port 접근하면 다음과 같이 나옵니다.
openssl s_client -connect localhost:30001
중간에 접근 패스워드(15 레벨)를 제출해주면 다음 패스워드까지 알려주네요.ㅎㅎ
Bandit Level 16 → Level 17
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
이번에는 로컬 호스트 31000~32000 포트에 현재 패스워드 제출하면 다음단계껄 알려준다고 하네요.ㅎㅎ 먼저 리스닝 중인 포트 찾고 SSL로 접근 시도 시 오직 하나가 다음 인증을 해준다고 하네요. 나머진 입력값 다시 그대로 내뱉고.ㅎㅎ
그래서 접근 후 nmap을 통해 포트스캔을 해봐야 되지 싶습니다.
이 nmap은 정말 강력한데요. 관련 사용법이 엄청나서... 이건 따로 한번 공부하면서 포스팅해보려고 합니다.
nmap 목적지 포트 번호 정도 넣어주면 될 것 같습니다.
그래서 현재 open 중인 포트가 3개 확인됩니다.
우선 31518 포트를 접근했더니, 문제처럼 입력한 값을 다시 내뱉습니다.
그래서 다음 포트를 확인해보았습니다. 31790
그래서 이러한 rsa로 된 패스워드를 확인 가능합니다.
그러나... 이 패스워드를 복사해서 다음 단계를 진행하려 하니 안됩니다....
그래서 뒤져보니 이걸 키값으로 저장하여 시도 가능한 ssh 커맨드가 있더라고요. Level13에서 써먹은 방법이...
그래서 ssh.key라는 파일을 만들어서 시도를 해봤네요
cat > ssh.key
그래서 시도해봤습니다.
ssh -i ssh.key bandit17@bandit.labs.overthewire.org -p 2220
그러면... 권한 문제를 삼더라고요... 본인만 읽어야 된다나... 권한이 잘못되었다고 합니다.
그래서 파일 권한을 보니 644여서....
400 즉 소유자 읽기 권한으로 수정하여 접근을 시도해보니 접근이 됩니다.ㅎㅎ
그 파일에 대한 권한 변경은 chmod 명령어를 사용하면 됩니다. chmod + 권한 + 파일명
chmod 400 ssh.key
혹시 환경이 root(admin)이 아닌 경우에는 권한이 없다고 문제를 삼을 수 있습니다.
이땐 sudo 명령어를 활용하여 파일 권한을 변경할 수 있습니다.
그 파일 권한에 대해서 보면 다음과 같이 볼 수 있는데요
제일 앞의 -는 파일을 나타내며 d인 경우 디렉터리, l인 경우 링크를 의미합니다.
그 외에는 파일 또는 디렉터리에 대한 권한을 의미하며, user, group, other에 대해 각각 rwx로 표현됩니다.
rwx : 6 r:4 w:2 x:1
Bandit Level 17 → Level 18
Level Goal
There are 2 files in the homedirectory: passwords.old and passwords.new. The password for the next level is in passwords.new and is the only line that has been changed between passwords.old and passwords.new
NOTE: if you have solved this level and see ‘Byebye!’ when trying to log into bandit18, this is related to the next level, bandit19
Commands you may need to solve this level
cat, grep, ls, diff
이번엔 2개 파일이 홈 디렉터리에 있는데 구패스워드, 신패스워드랍니다. 다음 레벨 패스워드는 신패스워드에 있는데 두 패스워드 사이에 유일하게 변경된 라인이라네요...
뭐 두 파일 비교하라는 거 같습니다. 그래서 diff 명령어를 사용하라나 봅니다.
diff 명령어는 비교할 파일명을 그냥 넣어주면 되는데요.
diff passwords.new passwords.old
결과 값에서
kfBf3 eYk5 BPBRzwjqutbbfE887 SVc5 Yd
를 다음 단계에 사용해보려 합니다.(제일 마지막 건 패스워드가 아니라고 나오더라고요)
Bandit Level 18 → Level 19
Level Goal
The password for the next level is stored in a file readme in the homedirectory. Unfortunately, someone has modified. bashrcto log you out when you log in with SSH.
Commands you may need to solve this level
ssh, ls, cat
bandit18에 접근했더니 안됩니다.... Byebye가 떠버리네요
level 19로 가는 설명을 보니 홈 디렉터리의 readme를 읽으라고 합니다. 그런데. bashrc를 수정해놔서 로그인 시도하면 byebye 해버린다네요.ㅎㅎ
그 ssh -t를 사용하면 psuedo terminal라는 가상 터미널을 생성하여 Inpu/output을 가능하게 해 준다고 하네요. 구글링을 통해서 나온 건데, 정확한 건 따로 더 알아봐야 될 것 같습니다. 그래서 다음 명령어를 이용하면 됩니다.
그러면 Byebye!라는 아웃풋이 아닌 readme 파일을 읽어달라는 명령어에 대한 결과물을 확인할 수 있습니다. 신기하네요..;
Bandit Level 19 → Level 20
Level Goal
To gain access to the next level, you should use the setuid binary in the homedirectory. Execute it without arguments to find out how to use it. The password for this level can be found in the usual place (/etc/bandit_pass), after you have used the setuid binary.
이번에는 setuid를 확인해서 처리해야겠네요.
우선 setuid는??
소유자가 root로 된 파일에 setuid가 설정되어 있으면 일반 사용자가 이를 실행 시 소유자의 권한으로 실행할 수 있게 하는 건데요.
bandit20-do의 소유자 권한이 bandit20으로 되어 있고, 권한이 rws로 setuid가 실행에 걸려있네요.ㅎㅎ 이놈의 권한을 이용하여 pwd가 있는 파일을 열면 해당 권한을 활용하여 패스워드 접근이 가능합니다.
GbKksEFF4 yrVs6 il55 v6 gwY5 aVje5 f0 j
'IT 및 정보보호 관련 소식&정보' 카테고리의 다른 글
알뜰폰 요금제(5G) 비교 (0) | 2020.05.11 |
---|---|
iOS 13.5 업데이트 소식 정리 (0) | 2020.05.09 |
무선 블루투스 이어폰. 삼성 하만 AKG N400 (1) | 2020.05.04 |
무선 블루투스 이어폰. 구글의 야심작 픽셀 버즈2 (2) | 2020.05.02 |
Linux study_OverTheWire[03: linux strings, tr, xxd, nc] (0) | 2020.04.21 |
댓글