[Bru1s3rs] Bandit - Level 25 ~ 30
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은 변경사항을 서버에 반영하기 위한 절차인데,
이는 임시저장과 비슷한 것이라고 한다.
그래서 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
먼저 벨로그에 접속해서 댓글을 달아보자
-완-