힌트를 확인해 보자
The password for the next level is stored in /etc/bandit_pass/bandit14 and can only be read by user bandit14.
For this level, you don’t get the next password, but you get a private SSH key that can be used to log into the next level. Note: localhost is a hostname that refers to the machine you are working on
대충 해석해보면 현재레벨에서는 접근이 불가하니 ssh로 접속하여 해당 디렉토리( /etc/bandit_pass/bandit14 경로로 이동한 후 패스워드를 획득하라는 내용이다. 일단 로그인을 한번 해보았다.
뭔가 엄청나게 많은 문자가 보이는데 찾아봐야 할 것들이 RSA Private key와 sshkey.private인데 확인을 해보기로 했다.
SSH : 텔넷(Telnet)과 용도는 같지만, 보안이 강화된 원격 접속 서비스이다.
- SSH를 이용하여 원격 접속하면 서버와 클라이언트 사이에 데이터를 전송할 때 암호화를 하게 된다.
- RSA 등 암호화 기법을 사용하며, 압축 기술 또한 제공하고 있다.
- 리눅스에서는 openssh를 통해 SSH를 이용할 수 있다.
- 포트 번호는 22번이다.
RSA 공개키 암호
현재 SSL/TLS에 가장 많이 사용되는 공개키 암호화 알고리즘이다.
전세계 대부분의 인터넷 뱅킹(대한민국 포함)이 이 RSA-2048 암호화를 사용한다.
- 공개키는 누구나 아는 키이므로, A가 B에게 보낼 때 B의 공개키로 암호화하여 전송
- 이 때, B의 공개키로 암호화했기에 B의 비밀키로 복호화 가능
- 해커가 탈취해도 정보를 알 수 없음 (대칭키의 키값 교환 문제 해결)
- 해커가 파일 탈취하여 B의 공개키로 이상한 파일을 암호화하여 보낼 위험성 존재
그럼 우리가 알 수 있는 것은 개인키를 알고 있으니까 개인키를 이용해서 로그인을 하면 되지 않을까 생각해 볼 수 있다.
힌트에서는 localhost로 로그인을 하라고 했으니까 한번 ssh를 이용해서 로그인을 해보면 될거같다.
ssh 옵션중에는 -i라는 옵션이있는데 이것은 원격에서 네트워크 상의 컴퓨터에 접속할 수 있다.
ssh 는 강력한 보안을 제공하기에 안전하지 못한, 개방된 네트워크에서도 안전하게 통신할 수 있다.
한번 접속을 해보았다 (지금은 그냥 22포트로 접속을하면 에러가 나오기 때문에 2220으로 접속을 해야한다.)
ssh -i sshkey.private bandit14@localhost -p 2220
yes를 입력하면 정상적으로 로그인이 된다.
로그인을 한 뒤에 힌트에서 말한 패스워드가 저장되어있는 디렉토리로 이동을 해보았다,
여기서 bandit14를 실행하면 되는데 먼저 열 수 있는 권한이 있는지 확인해보았다.
읽을 수 있는 권한이 있으니까 확인 후에 읽어보면 될 거 같다.
패스워드를 알 수 있었다.
공개키 암호와 ssh 프로토콜을 잘 알아야 풀 수 있는 문제 같다.
'CTF > Pwnable' 카테고리의 다른 글
How to using Linux Bandit Level 15 ~ Level 16 (0) | 2024.02.03 |
---|---|
How to using Linux Bandit Level 14 ~ Level 15 (0) | 2024.02.01 |
How to using Linux Bandit Level 12 ~ Level 13 (0) | 2024.02.01 |
How to using Linux Bandit Level 11 ~ Level 12 (0) | 2024.02.01 |
How to using Linux Bandit Level 10 ~ Level 11 (0) | 2024.01.31 |