OverTheWire - Bandit
강의목차: Level 18 → Level 19(.bashrc)
Bandit 웹페이지
https://overthewire.org/wargames/bandit/
1. Bandit Level 18 → 19
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 you log in with SSH.
Commands you may need to solve this level
ssh, ls, cat
다음 레벨 패스워드는 홈 디렉터리에 readme 에 저장되어 있다. 공교롭게도, 누군가 .bashrc 를 조작하였고 SSH 로 로그인 시 연결이 해제된다.
Level 18 로그인
$ ssh -p 2220 bandit18@bandit.labs.overthewire.org
Level 18 패스워드: hga5tuuCLF6fFzUpnagiMN8ssu9LFrdg
Byebye ! 라는 문구와 함께 연결이 끊겼다고 뜬다.
bandit17 로 로그인 시도
$ ssh -p 2220 bandit17@bandit.labs.overthewire.org
Level 17 패스워드: VwOSWtCA7lRKkTfbr2IDh6awj9RNZM5e
Level 18 에 대한 passwd 파일을 확인해보면 처음에 접속시 어떤 프로그램이 실행되는지 알 수 있다.
$ cat /etc/passwd | grep bandit18
명령어를 받아서 수행해주는 프로그램 = bash ( 가장 널리 쓰이는 shell 프로그램 )
예를 들어 id 를 입력하면 id 를 찾아서 프로그램 실행시킨 후 화면에 띄어준다.
누군가 .bashrc 를 건드렸는데, bashrc 는 접속 시 bash 가 시작이 되면 최초로 실행을 하는 어떤 설정파일이며, 접속이 끊긴 이유는 bash 연결을 종료하는 명령어가 심어져 있는거 같다.
sftp 로 접속하면 bash 를 사용하지 않고, 전용 shell 을 사용하므로 shtp 로 접속한다.
bash 를 사용하지 않아 bashrc 에 영향을 받지 않는다.
$ sftp bandit18@localhost
권한 문제로 denied 되었다.
chmod 를 사용하여 /home/bandit17/.ssh/id_rsa 파일을 700 권한으로 변경시도해본다.
$ cd /home/bandit17/.ssh
→ /home/bandit17/.ssh 디렉터리로 이동
$ ls -al
→ 현재 디렉터리에서 id_rsa 확인
$ chmod 700 ./id_rsa
→ id_rsa 권한 700 으로 변경
$ chmod 700 id_rsa
→ id_rsa 권한 700 으로 변경
Operation not permitted 에러가 발생하였다.
exit 로 나가서 홈에서 bandit18 로 다시 로그인 시도
$ ssh -p 2220 bandit18@bandit.labs.overthewire.org cat readme
$ ssh bandit18@bandit.labs.overthewire.org -p 2220 cat readme
→ ssh 로그인하여 원격으로 cat 실행하여 readme 파일 출력
→ bandit18로 접속만 하는것이 아니라, bandit18로 로그인 한 다음 cat readme를 실행했을 때의 결과만 출력하게 된다.
플래그: awhqfNnAbc1naukrpqDYcF95h7HoMTrC
ssh 접속 시 -t 옵션을 입력하면 시작 시 실행할 shell 을 설정할 수 있다.
$ ssh -t -p 2220 bandit18@bandit.labs.overthewire.org bash
→ bash shell 로 설정
bash shell 은 bashrc 설정으로 인해 접속이 종료된다.
$ ssh -t -p 2220 bandit18@bandit.labs.overthewire.org sh
→ bourne shell 로 설정
bourne shell 은 bash shell 과 다르게 프롬프트가 다르다.
로그인 후 현재 shell 을 확인하는 방법이 있다. ( echo 명령어 사용 )
$ echo $SHELL
→ 실제 접속한 shell 은 bourne shell 인데 /bin/bash 로 나온다. ( 잘못된 정보가 나옴 )
$ echo $0
→ bourne shell 이 확인된다.
$ cat /etc/shells
→ 사용할 수 있는 shell 출력
bourne shell 에서 readme 파일 확인
$ ls -al
$ cat ./readme
플래그: awhqfNnAbc1naukrpqDYcF95h7HoMTrC
Level 19 접속 시도
$ ssh -p 2220 bandit19@bandit.labs.overthewire.org
패스워드: awhqfNnAbc1naukrpqDYcF95h7HoMTrC
$ whoami
$ id
입력하여 현재 로그인한 계정 확인
취미로 해킹1 강의 : https://www.inflearn.com/course/linux-3
'보안 > Bandit 워게임' 카테고리의 다른 글
OverTheWire - Bandit : Level 20 → Level 21 (0) | 2023.04.17 |
---|---|
OverTheWire - Bandit : Level 19 → Level 20 (0) | 2023.04.16 |
OverTheWire - Bandit : Level 17 → Level 18 (0) | 2023.04.14 |
OverTheWire - Bandit : Level 16 → Level 17 (0) | 2023.04.13 |
OverTheWire - Bandit : Level 15 → Level 16 (0) | 2023.04.12 |