[Bru1s3rs] Bandit - Level 25 ~ 30

securitykss·2023년 7월 7일
0

[Bru1s3rs] Bandit

목록 보기
7/8

Level 25 -> Level 26

문제 설명

요약: bandit25->26 접속하는 것은 쉽다.

26의 쉘은 /bin/bash 가 아니라 다르다.

그게 뭔지 어떻게 작동하는 지 알아보라~

문제 풀이

먼저 접속해서 ls 해보자

1. ls 확인 후 cat 명령

RSA 키가 있다.

ssh -i 로 접속해보자

2. ssh -i ~

접속하면 위 그림과 같이 띄워지고 바로 꺼진다.

3. cat /etc/passwd

문제에서 설명했었는데, bandit26은 /bin/bash를 사용하지 않는다고 했다.

/etc/passwd 를 통해서 쉘을 무얼사용하는 지 확인했지만

/usr/bin/showtext 를 사용한다.

저게 뭔지 확인하자

4. cat /usr/bin/showtext

이걸 보니, 왜 바로 종료했는지 알 수 있었다.

~/text.txt 를 읽고 바로 종료하는데

이걸 출력하고 바로 꺼지는 것이였다.

more 명령어는 화면에 출력되는 화면이 작으면 전부 출력되지 않으니

화면을 줄이고 접속해보자

5. 재접속 후 v 로 vi 진입

6. :r /etc/bandit_pass/bandit26으로 출력되는 부분 교체

여기서 이렇게 설정후

:q로 다시 vi에서 나가게 되면

아래 그림처럼 비번을 뱉어준다.

-완-

Level 26 -> Level 27

문제 설명

요약: 잘했고, bandit27 패스워드를 획득해라

문제 풀이

생각해보면 여전히 bandit26의 shell은 /usr/bin/showtext로 설정이 되어 있다.

그렇다면 위의 more에서 v로 vi 다시 진입해서 shell을 획득을 해야한다.

1. 진입 후 shell 획득

진입하게 되면 /usr/bin/showtext 로 설정되어 있던 shell을

/bin/bash 로 설정해줘야 한다.

그리고 sh 로 진입

2. id 확인 후 ls

이렇게 확인해보면 실행가능한 bandit27-do가 있다.

3. bandit27-do 실행

보면 예전에 풀었던 문제와 비슷하다.

잠깐 euid 빌리는 형태의 실행파일이다.

이렇게 바로 패스워드 획득 하면 된다.

-완-

Level 27 -> Level 28

문제 설명

요약: ssh://bandit~ 에 git 저장소가 있고, bandit27-git 암호는

bandit27 암호와 동일하니, 저장소를 복제하고 암호를 찾으라고 한다.

문제 풀이

git 명령어를 익히는 문제 같다.

git clone을 통해서 가져와보자

권한이 없다고 한다.

/tmp 디렉토리에 새로운 디렉토리 만들고, 다시 받아보자

또 권한 문제다

chmod 777 로 현재 디렉토리 권한 줘보자

chmod 777을 줘도 안됐었는데, 생각해보면 포트까지 안 넘겨 줘서 그런것 같다.

그래서 2220 포트번호 까지 붙이니 연결이 되었다.

디렉토리가 생성되었고,

들어가서 README 파일 읽어주면 끝이다.

-완-

Level 28 -> Level 29

문제 설명

요약: 이전 문제와 비슷한 양상이다. 일단 접속해보자

문제 풀이

똑같이 해주긴 했는데

분명 똑같은 문제는 아닐 것이기에 의심을 했다.

아니나 다를까,

password에 장난 친 모습을 확인할 수 있다.

1. git log

git log를 통해서 commit을 확인하는데,

commit은 변경사항을 서버에 반영하기 위한 절차인데,

이는 임시저장과 비슷한 것이라고 한다.

https://jiravvit.tistory.com/entry/OverTheWire-Bandit-level28-level29

그래서 commit 정보를 확인해 보니,

fix info leak 라는 것이 나온다.

뭔가를 고쳤다는 의미인데 저것부터 살펴보자.

2. git show

git show 명령어를 통해 commit 정보를 자세히 볼 수 있다.

passwd를 고친 흔적이 보이고, 원래 bandit29의 패스워드가 나온다.

-완-

Level 29 -> Level 30

문제 설명

요약: 이 문제도 이전 문제와 비슷한 양상이다.

문제 풀이

뭔가 똑같이 했는데, 사용자만 변경되었고, 패스워드 정보는 얻지 못했다.

1. git branch -a

branch란 프로그래밍 작업을 하는 동시에, 독릭적으로 진행하는 것을 가능하게 하는 저장소를 가리키는 git 포인터라고 한다.

(작업 공간 가르키는 곳으로 이해했다.)

git branch -a 명령어를 통해 branch를 확인해보자

현재 master branch로 설정 되어있다.

2. git checkout

branch를 바꾸는 명령어이다.

git checkout 으로 branch를 /dev로 변경한 모습을 확인할 수 있다.

3. git log & git show

이제 branch도 바꼈으니, orign/dev 를 가리키는 곳의 commit 정보를

git show로 확인했더니

패스워드 변경기록을 확인할 수 있다.

-완-

Reference

https://jiravvit.tistory.com/entry/OverTheWire-Bandit-level25-level26

https://jiravvit.tistory.com/entry/OverTheWire-Bandit-level26-level27

https://jiravvit.tistory.com/entry/OverTheWire-Bandit-level28-level29

https://jiravvit.tistory.com/entry/OverTheWire-Bandit-level29-level30

profile
보안 공부를 하는 학생입니다.

1개의 댓글

comment-user-thumbnail
2025년 1월 8일

먼저 벨로그에 접속해서 댓글을 달아보자
-완-

답글 달기