해킹&보안

해킹&보안[반딧 워게임 : OverTheWire] Level 18 -> 19 (리눅스/해킹/보안 공부)

yamaeking 2025. 3. 18. 12:02

자 오늘은 Level 18 -> 19을 해보도록 하겠다. 

(Login ID :  bandit18 /  Password : x2gLTTjFwMOhQ8oWNbMN362QKxfRqGlO

 

1. 문제 내용

https://overthewire.org/wargames/bandit/bandit19.html

 

OverTheWire: Level Goal

We're hackers, and we are good-looking. We are the 1%. <!-- Please read and accept the Rules! --> Level Goal The password for the next level is stored in a file readme in the homedirectory. Unfortunately, someone has modified .bashrc to log you out when yo

overthewire.org

 

 

 -> .bashrc 파일이 당신이 SSH 로 로그인하려고 하면 로그아웃 시켜버리는 것으로 바뀌었다고 한다. 

2. 문제 풀이

-> 실제로 bandit18 비밀번호를 갖고 Putty 로 SSH 로그인 하려고 하면 쉘이 꺼져버린다. 해당 서버로 SSH 로그인을 하게 되면 자동으로 home 디렉토리에 있는 .bashrc 에 있는 파일을 실행 시키는데, 이 .bashrc 파일이 수정 되었기 때문에 실행하자마자 로그아웃 되는 현상이 발생하는 것이다.

 

이를 해결하기 위해서는 Putty -> SSH 에서 Remote command 에 아래처럼 /bin/sh 를 넣어주자. 그리고 Open 을 한 뒤 실행해보자.

 

Open 하여 아이디와 비밀번호를 입력하면,

 

 

위와 같이 화면이 꺼지지 않고 쉘에 입력할 수 있는 상태로 된다. 참고로 ls -al 을 해보면 readme를 포함하여 아래처럼 .bashrc 파일을 볼 수 있는데, bash 는 기본적으로 이 파일을 읽어와서 실행한다.

 

아무튼 저 파일을 바로 읽지 않고,  환경설정을 통해 remote command 를 통하여 /bin/sh 를 실행하도록 한다. 이러면 bash 로 로그인 하는 것이 아니라 /bin/sh 로 로그인 하게 된다. 참고로 sh는 POSIX 표준 셀이고, bash 보다 더 기본적인 쉘이라고 한다. 그리고 이 sh는 bash 전용 초기화 파일(.bashrc)를 실행하지 않는다. 그래서 저렇게 튕기지 않고 커맨드 입력을 할 수 있는 것이다.

 

아무튼 cat readme 하여 비밀번호를 겟겟하도록 하자.

 

3. 요약

☞ SSH 로 로그인 하기 전 환경설정(remote command)을 하여 bash 로 로그인 하지 않고 다른 쉘로 로그인 할 수 있다.

☞ remote command 를 이용하면 bash가 실행되기 전에 다른 명령어를 실행 시킬 수 있다.