OverTheWire: Bandit Network Connection (Level 18 → Level 19)

Fordsec·2023년 4월 10일

  1. Level 18 -> Level 19으로 넘어가는 문제이다.

지난번 문제에서, bandit18으로 로그인을 할려고 했더니, Byebye!! 가 뜨고, 연결이 종료가 되었다.

자, 그것부터 해결을 해야 한다.

  1. 문제 지문을 보면, 홈 디렉토리에 readme라는 파일에 다음으로 가는 비밀번호가 저장되어 있다고 한다.

그러니까, 들어가기만 하면, 문제를 풀 수 있는 것이다.

그런데, 문제는 bandit18으로 로그인을 통해 들어갔더니, 바로 종료가 된 것이다.

문제 지문을 다시보면, "불행하게도 누군가가 .bashrc라는 파일을 수정해 놨다." 라고 적혀있다.

3.) 이 .bashrc라는 것은 /bin/bash라는 쉘을 쓸 때 bash라는 쉘이 실행 될 때 .bashrc 스크립트가 실행되게 하는 것이다.

예를 들어서, .bashrc 스크립트 에다가 echo "Hello~ C6rt4" 이렇게 적어주었다고 하면, 쉘을 켤 때마다 맨위에 나오는 화면에 Hello~ C6rt4가 출력이 되는 것이다.

이렇게 특정 글자를 출력하게 하거나, .bashrc 쉘을 실행할 때 어떤 동작을 하게 하고 싶다면, 예를들어 어떤 프로그램이 켜지게 하고 싶다면, 요 .bashrc에다가 작성해 두는 것이다.

그런데 문제에서는 누군가가 이 파일을 바꿔 놓은 것이다.

  1. bandit으로 로그인을 할때, ssh를 이용하여 쉘을 연결하면, 여기서 기본 쉘인 /bin/bash를 연결해서 실행해서 전달해 주는데, 이 bash가 실행될 때, .bashrc의 수정된 파일이 실행되면서, Byebye!! 하고 서는 exit종료를 바로 시켜버린 것이다.

그러니 기본 쉘인 bash를 못 쓰는 것이다.

지금 연결조차 못하는 상황에 처한 것이다.

이를 해결하기 위해서는 ssh에 대해 다시 살펴봐야 한다.

  1. ssh -h 옵션을 주면, ssh명령어를 어떻게 쓰는지 보면, ssh를 쓰고, 중간에 무언가 옵션을 쓰고, 목적지 (ip주소, 포트번호)를 지정해 주고, 뒤에 command라는게 있다.

ssh를 쓸때는 뒤에 명령어를 실행할 수 있다는 것이다.

  1. ssh로 로그인을 하게 되면, 연결을 맺는 것이다.

원래는 특정명령어를 입력하지 않았으면, 그냥 ssh를 연결하고, 기본 bash쉘을 연결해서 우리에게 전달해 주는 것이다.

그런데, 여기에 우리가 원하는 명령어를 쓸 수 있다는 것이다.

  1. 예를 들어서 맨 뒤에, id라고 명령어를 써주고, 엔터를 누른다음에 password : 입력란에 전 문제에서 찾았던 비밀번호를 입력해 로그인을 시도해주면,

아까는 그냥 Byebye!!가 뜨고, exit로 종료가 되었다면, 이번에는 bash쉘이 실행이 안된것이다.

대신 id라는 명령어가 실행돼서 id라는 결과만 딱 나온 것이다.

자, 이점을 악용해서 쉘을 휙득하는 것이다.

저기에 id가 아니라 쉘 명령어를 실행하면 어떻게 될까?

  1. bash쉘은 실행하자 마자 쫓겨날게 뻔하니까 다른 쉘 /bin/sh쉘을 실행할 것이다.

이러면, ssh연결을 한 다음에, 이 /bin/sh쉘이라는 프로그램을 실행시켜서 우리에게 전달해 줄 것이다.

그러면, 아무반응이 없다.

하지만, 여기서 명령어를 내려보면 어떻게 될까?

  1. 쉘이 잘 작동한다.

그동안 봐왔던 쉘은 앞에 $표시나 #표시가 있었지만 이런식으로 쉘이 실행될 수 도 있다.

어쨌든 여기다가 명령어를 내리고, 결과를 받아올 수 있기 때문에, 요것도 하나의 쉘이다.

  1. pwd로 현재경로를 보고, ls로 뭐가 있는지 보고, cat으로 readme를 읽어주면, 비밀번호를 찾아낼 수 있었다.

  1. 로그인이 잘 되었다.
  1. 이번 문제는 .bashrc 라는 스크립트에 대해서 알아볼 수 있었다.

https://youtube.com/@Certa6

제 유튜브 채널입니다.
도움이 됐다면, 구독 부탁합니다!
주변에 제 블로그, 유튜브를 알려주시면 감사하겠습니다~! :)

Thank you for watching the blog.
Please subscribe! I would appreciate it if you could share the blog around you.

profile
Penetration Tester | ROK NIS 2025 APEX | ROKAF CERT

0개의 댓글