🌱초급

[Bandit] Level 13 → Level 14

Bandit Level 13 풀이 과정을 설명합니다.

4분 읽기

문제

Level Goal

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. Look at the commands that logged you into previous bandit levels, and find out how to use the key for this level.

  • 이번에는 password가 /etc/bandit_pass/bandit14에 저장되어 있고, bandit14 계정으로만 읽을 수 있다고 합니다.

  • 그런데 private SSH key를 받을 수 있어서 그 안에서 해결할 수 있나 봅니다.


해결

image.png
  • ls -al 명령어를 통해 sshkey.private 파일을 확인할 수 있습니다.

  • 한 번 읽어보도록 하겠습니다.

image.png
  • cat 명령을 통해 RSA 키를 확인할 수 있습니다.

image.png
  • sshi 옵션을 이용해 bandit13에 주어진 개인키를 이용해 bandit14에 접속할 수 있습니다.

    • -i 옵션을 이용하면 RSA private key를 가져와서 password를 따로 인증하지 않고도 해당 계정에 접속할 수 있게 됩니다.

image.png
  • /etc/bandit_pass/bandit14 파일을 확인하면 패스워드를 획득할 수 있습니다.


핵심

SSH/OpenSSH/Keys

Public an Private Keys

  • 공개키 인증은 패스워드 인증보다 안전하다.

  • 공개키와 개인키는 특별한 수학적 특성으로 아주 큰 숫자로 구성된다.

  • 공개키는 로그인하려는 모든 컴퓨터의 ./ssh/authorized_keys 파일에 저장되어 있으며, 개인키는 로그인시 pc에 남는다.

image.png
  • 로그인 할 때, SSH 서버는 공개키를 사용해 개인키로만 'unlocked' 할 수 있는 방식으로 메세지를 'lock' 한다.

  • 이는 가장 자원이 풍부한 공격자일지라도 사용자의 세션을 스누핑이나 방해할 수 없다는 것을 의미한다.

  • 추가적인 보안 수단으로, 대부분의 SSH 프로그램들은 개인키를 암호문으로 보호된 형식으로 저장한다. 

  • 만약 사용자의 컴퓨터가 해킹당했을 경우, 해커가 암호문을 깨고 사용자의 키를 사용하기 시작하기 전에 사용자의 오래된 공개키를 사용하지 못하게 할 충분한 시간이 필요하다.

  • 사용자가 하드디스크에서 개인키가 보호되지 않는다는 것을 꺼리지 않는다면, 사용자는 키를 사용하여 네트워크 백업의 일부로 보안 자동 로그인을 실시하도록 할 수 있다.

  • 다른 SSH 프로그램들은 공개키들을 다른 방식을 사용하지만 비슷한 형태이다.

image.png

Key-Based SSH Logins

  • 키 기반 인증은 일반 암호와 Kerberos 티켓과 같은 OpenSSH와 함께 사용할 수 있는 몇몇 인증 모드 중 가장 안전하다. 

  • 키 기반 인증은 키 값이 일반 암호보다 무차별적인 공격, 추측하기 어렵다. 

  • SSH 는 RSA 또는 DSA 키로 사용한다. 그 둘은 SSH가 발명되었을 때 최첨단 알고리즘으로 선정되었지만, 현재 DSA는 덜 안전한 것으로 보인다. RSA는 개인키, 공개키 쌍을 이룬다.

  • To securely communicate using key-based authentication, one needs to create a key pair, securely store the private key on the computer one wants to log in from, and store the public key on the computer one wants to log in to.

  • 키 생성에 대한 부분은 링크 참조: help.ubuntu.com/community/SSH/OpenSSH/Keys

OpenSSH

  • OpenSSH is the premier connectivity tool for remote login with the SSH protocol. It encrypts all traffic to eliminate eavesdropping, connection hijacking, and other attacks. In addition, OpenSSH provides a large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options.

  • The OpenSSH suite consists of the following tools:

image.png


댓글

이 글이 마음에 드셨다면 반응이나 댓글을 남겨주세요!

댓글을 작성하려면 로그인하세요

로딩 중...
공유
sikk

sikk

Author

보안을 공부하는 개발자입니다. Web2/Web3 보안과 시스템 해킹에 관심이 많습니다.

뉴스레터 구독하기

새로운 포스트가 올라오면 이메일로 알려드려요!